Мастер-классы по Javascript Екатеринбург Ростов-на-Дону Москва Узнать больше...
Содержание (скрыть) Содержание (показать)

Сумма через замыкание

Напишите функцию sum, которая работает так: sum(a)(b) = a+b.

Да, через двойные скобки. Это не опечатка. Например:

sum(1)(2) = 3
sum(5)(-1) = 4

Решение
Решение

Чтобы вторые скобки в вызове работали - первые должны возвращать функцию.

Эта функция должна знать про a и уметь прибавлять a к b. Вот так:

function sum(a) {

  return function(b) { 
    return a + b;  // возьмет a из внешнего LexicalEnvironment
  };

}

alert( sum(1)(2) );
alert( sum(5)(-1) );

#57
Наверх

Реклама

Нашли опечатку?

Нашли опечатку на сайте? Что-то кажется странным?
Выделите соответствующий текст и нажмите Ctrl+Enter!

Последние Комментарии

Помоги другим!

Помоги другим узнать о хорошей статье!