Показать сообщение отдельно
  #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>
Ответить с цитированием