В этот ответ Я не понимаю, что происходит с немедленно вызванной функцией, которая предоставляет текущую или кумулятивную сумму элементов введенного массива. Первая версия взята из связанного ответа, а вторая версия эквивалентна:
const cumulativeSum = (sum => value => sum += value)(0);
console.log([5, 10, 3, 2].map(cumulativeSum));
const cumulativeSum2 = (function(sum){ return function(value) {return sum += value}})(0)
console.log([5, 10, 3, 2].map(cumulativeSum2));
Казалось бы, немедленные вызовы должны оцениваться следующим образом:
cumulativeSum = value => 0 += value
cumulativeSum2 = function(value) {return 0 += value}
Но консоль показывает, что это на самом деле
cumulativeSum = value => sum += value;
cumulativeSum2 = function(value) {return sum += value;}
Как переменная sum
переживает немедленный вызов? Что происходит с этими функциями? Есть ли для него название?