---
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;
}
```
