Работа замыкания
Здравствуйте, подскажите пожалуйста как решить такую задачу?
function add(x) {
var part = function(y) {
part.sum += y;
return part;
};
part.sum = x;
part.valueOf = function() {
return part.sum;
};
return part;
}
var x = add(1)(2)(3)(4);
console.log(+x);
// 10
var three = add(1)(2);
console.log(+three);
//3
var six = three(3);
console.log(+six);
//6
console.log(+three);
//6
как сделать так, чтобы console.log(+three) на последнем шаге было 3? |
Moloch,
А почему должно быть 3, если six и three ссылаются на одну и туже функцию и вызов одной из них, изменяет свойство sum обеих? Объект переменных надо новый создавать.
<script>
function add(x) {
var part = function (y) {
part.sum += y;
return part;
};
part.sum = x;
part.valueOf = function () {
return part.sum;
};
return part;
}
var three = add(1)(2);
var six = add(+three)(3)
alert(+three);
</script>
|
благодарю за ответ!
|
| Часовой пояс GMT +3, время: 10:02. |