Вход

Просмотр полной версии : Замыкания в js


shkarbatov
05.08.2013, 22:31
Добрый день. Разбираюсь в замыканиях, вот хочу написать функцию, которая при каждом вызове складывает переданные данные. То есть в итоге должно получиться: 14, параметров может быть не 4, а более.
Для 2 чисел работает, а для 3 и более - не получается.
Подскажите в чем промах?

function func(number) {
var result = number;

var res = function(num) {
return result = result + num;
};
return res;
}

var result = func(2)(3)(4)(5);
console.log(result); // 14

nerv_
05.08.2013, 23:54
var foo = (function() {
var sum = 0;

function bar() {
sum += arguments[ 0 ] || 0;
return bar;
}

bar.toString = bar.valueOf = function() {
return sum;
};

return bar;
}());

alert( foo( 1 )( 2 )( 3 )( 4 )( 5 ) );

shkarbatov
05.08.2013, 23:56
Спасибо большое!