--- id: 587d7b8e367417b2b2512b5f title: Передавайте аргументи, щоб уникнути зовнішньої залежності у функції challengeType: 1 forumTopicId: 301234 dashedName: pass-arguments-to-avoid-external-dependence-in-a-function --- # --description-- Остання задача полягала в тому, щоб на крок приблизитись до функціональних принципів програмування, однак все ще чогось не вистачає. Ми не змінили значення глобальної змінної, але функція `incrementer` не буде працювати без глобальної змінної `fixedValue` being there. Інший принцип функціонального програмування - завжди відкрито заявляти про свої залежності. Це означає, що якщо функція залежить від змінної чи об'єкту, тоді ця змінна чи об'єкт передаються безпосередньо в функцію в якості аргументу. Цей принцип має ряд хороших наслідків. Цю функцію легше перевірити, ви точно знаєте, який вхід потребується, і вона ні від чого не буде залежати у вашій програмі. Це може дати вам більше впевненості при зміні чи видаленні, чи додаванні нового коду. Ви б знали, що ви можете чи не можете змінити, і ви можете бачити, де розміщені потенційні пастки. Нарешті, функція завжди виробляє один і той же набір вхідних данних, незалежно від того, яка частина коду його виконує. # --instructions-- Давайте оновимо функцію `incrementer` для чіткого визначення залежностей. Напишіть функцію `incrementer` так, щоб вона прийняла аргумент, а потім повертала результат після збільшення значення на одиницю. # --hints-- Ваша функція `incrementer` не повинна змінювати значення `fixedValue` (яка є `4`). ```js assert(fixedValue === 4); ``` Ваша функція `incrementer` повинна прийняти аргумент. ```js assert(incrementer.length === 1); ``` Ваша функція `incrementer` повинна повернути значення, що на одиницю більше значення `fixedValue` value. ```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; } ```