Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задачка на JavaScript (https://javascript.ru/forum/misc/42376-zadachka-na-javascript.html)

Manyahin 23.10.2013 21:39

Задачка на JavaScript
 
Как должна выглядеть функция, что бы при вводе plus(3)(3) в консоле выводило 6?

После ответа, будет продолжение.

NodeNerd 23.10.2013 22:12

function plus(a){
return function(b){
console.log(a+b);
}
}

plus(3)(3); // 6
Но лучше было бы сразу написать контекст.

Manyahin 24.10.2013 11:31

Это верно. Продолжение, как написать функцию, что бы количество аргументов было неограниченно?
Например,
plus(1)(2) == 3
plus(1)(2)(3) == 6
и т.д.

devote 24.10.2013 13:05

Manyahin,
а чем вас не устраивает нормальный способ передачи аргументов?
function plus() {
    var result = 0;
    for(var i = 0; i < arguments.length; i++) {
        result += +arguments[i];
    }
    return result;
}

plus(3, 3); // 6
plus(1, 2, 3); // 6

BallsShaped 24.10.2013 13:36

function plus(x) {
  plus.result = x;
  plus.valueOf = function () {
    return plus.result;
  };
  return plus;

  function plus(x) {
    plus.result += x;
    return plus;
  }
}

alert(plus(1)(2)(3) == 6);

Вот только зачем..:)

Яростный Меч 24.10.2013 16:14

прикольная задачка.
только баян.
http://javascript.ru/forum/misc/1143...html#post70251


Часовой пояс GMT +3, время: 00:42.