Files
freeCodeCamp/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/functional-programming/pass-arguments-to-avoid-external-dependence-in-a-function.md
2023-03-28 21:16:03 +05:30

75 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: 587d7b8e367417b2b2512b5f
title: Передача аргументів для уникнення зовнішньої залежності у функції
challengeType: 1
forumTopicId: 301234
dashedName: pass-arguments-to-avoid-external-dependence-in-a-function
---
# --description--
Попереднє завдання було на крок ближче до принципів функційного програмування, однак чогось досі не вистачає.
Ми не змінили значення глобальної змінної, але функція `incrementer` не буде працювати без глобальної змінної `fixedValue`.
Інший принцип функційного програмування — завжди оголошувати свої залежності відкрито. Це означає, що якщо функція залежить від змінної чи об’єкта, тоді ця змінна чи об’єкт передаються прямо до функції як аргумент.
З цього принципу випливає декілька хороших наслідків. Цю функцію легше протестувати, ви знаєте її вхідні дані і вона ні від чого не залежить у вашій програмі.
Таким чином ви будете впевненішими при зміні, видаленні чи додаванні нового коду. Ви знатимете, що можна змінити і бачитимете, де розміщені потенційні пастки.
Зрештою, функція завжди виробляє однакові вихідні дані для однакових вхідних даних, незалежно від того, яка частина коду виконує їх.
# --instructions--
Оновимо функцію `incrementer` так, щоб вона чітко оголошувала свої залежності.
Напишіть функцію `incrementer` так, щоб вона приймала аргумент, а потім повертала значення, збільшене на один.
# --hints--
Ваша функція `incrementer` не повинна змінювати значення `fixedValue` (дорівнює `4`).
```js
assert(fixedValue === 4);
```
Ваша функція `incrementer` повинна приймати аргумент.
```js
assert(incrementer.length === 1);
```
Ваша функція `incrementer` повинна повертати значення, яке більше на одиницю за `fixedValue`.
```js
const __newValue = incrementer(fixedValue);
assert(__newValue === 5);
```
# --seed--
## --seed-contents--
```js
// The global variable
let fixedValue = 4;
// Only change code below this line
function incrementer() {
// Only change code above this line
}
```
# --solutions--
```js
let fixedValue = 4;
function incrementer(fixedValue) {
return fixedValue + 1;
}
```