Можно ли вызвать функцию, вызывающую чистую функцию, можно ли назвать чистой функцией? Насколько я понимаю, «чистая функция» - это функция, которая всегда дает одинаковый результат на одном и том же входе. Тогда давайте представим этот случай.
const function1 = name => {
console.log(`${name}`);
};
const function2 = name => {
function1(name);
console.log('you')
}
Я знаю, что это может выглядеть немного глупо, но меня смутил пример того, что я видел как пример чистой функции. Потому что обычно пример был таким.
var c = 10;
function add2(a,b){
return a + b + c;
}
console.log(add2(10,3)); // same
console.log(add2(10,3)); // same
c = 20;
console.log(add2(10,3)); // different
Затем, как мы изменили c в последнем коде, если мы изменим функцию 1 в первом примере, функция 2 также будет другой. Эта простая вещь заставила меня задуматься, как я могу строго определить «чистую функцию».
const function1 = name => {
return `hi, ${name}`;
};
const function2 = name => {
return `${function1('Alice')} and ${name}`};
}