Когда использовать closures?

У меня есть следующий код:

function creaSumador(x) {
  return function(y) {
    return x + y;
  };
}

var suma5 = creaSumador(5);
var suma10 = creaSumador(10);

console.log(suma5(2));  // muestra 7
console.log(suma10(2)); // muestra 12 

тот же самый я могу делать это так

function suma(x,y) {
 
    return x + y;
  
}



console.log(suma(5,2));  // muestra 7
console.log(suma(10,2)); // muestra 12 

Я не вижу большую важность в функции closures, так как также возможно делать без closures, они могут объяснять мне, когда использовать closure, когда он в действительности необходим?

1
задан 20.06.2019, 18:52
0 ответов

Я нахожу это полезным во время создания 'публичных' или 'частных' свойств:

var functions = (function () {
    var private = 'this is private'; 

    return {
        publicAccess: function () {
            return private;
        }
    }
})(); 

Тогда таким образом переменной functions только ты имел бы доступ снаружи в publicAccess. Не сможет быть измененной стоимость private прямо соглашаясь на нее.

6
ответ дан 03.12.2019, 17:59
  • 1
    mmm твой ответ но какая-то утилита мне кажется связной больше? –  24.12.2016, 00:25
  • 2
    Принесенный к твоему примеру. Представь, что Ваш funció n creaSumador, говорится о funció n, что вычисляет стоимость различных монет. Тогда твой podrí эксперт instanciar эта funció n, таким же образом как ты это сделал с suma5 и suma10. И tendrí схвати таким образом возможность определять благодаря closures, различным конвертерам иностранных монет. –  26.12.2016, 02:04