У меня есть следующий код:
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
, когда он в действительности необходим?
Я нахожу это полезным во время создания 'публичных' или 'частных' свойств:
var functions = (function () {
var private = 'this is private';
return {
publicAccess: function () {
return private;
}
}
})();
Тогда таким образом переменной functions
только ты имел бы доступ снаружи в publicAccess. Не сможет быть измененной стоимость private
прямо соглашаясь на нее.