Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.02.2016, 15:20
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

Работа замыкания
Здравствуйте, подскажите пожалуйста как решить такую задачу?
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?
Ответить с цитированием
  #2 (permalink)  
Старый 28.02.2016, 16:53
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

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>
Ответить с цитированием
  #3 (permalink)  
Старый 28.02.2016, 17:01
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

благодарю за ответ!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пример из книги: замыкания ejik3800 Общие вопросы Javascript 1 01.04.2018 10:46
замыкания и утечки памяти newobject Общие вопросы Javascript 1 18.07.2014 12:39
Front-end разработчик, работа удаленная или в офисе(Нижний Новгород), фуллтайм. VadimZharko Работа 8 29.04.2013 09:03
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 22:06
Про замыкания Иваннн Общие вопросы Javascript 3 12.01.2011 11:12