Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.10.2013, 21:39
Новичок на форуме
Отправить личное сообщение для Manyahin Посмотреть профиль Найти все сообщения от Manyahin
 
Регистрация: 14.06.2013
Сообщений: 9

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

После ответа, будет продолжение.
Ответить с цитированием
  #2 (permalink)  
Старый 23.10.2013, 22:12
Новичок на форуме
Отправить личное сообщение для NodeNerd Посмотреть профиль Найти все сообщения от NodeNerd
 
Регистрация: 23.10.2013
Сообщений: 8

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

plus(3)(3); // 6
Но лучше было бы сразу написать контекст.
Ответить с цитированием
  #3 (permalink)  
Старый 24.10.2013, 11:31
Новичок на форуме
Отправить личное сообщение для Manyahin Посмотреть профиль Найти все сообщения от Manyahin
 
Регистрация: 14.06.2013
Сообщений: 9

Это верно. Продолжение, как написать функцию, что бы количество аргументов было неограниченно?
Например,
plus(1)(2) == 3
plus(1)(2)(3) == 6
и т.д.
Ответить с цитированием
  #4 (permalink)  
Старый 24.10.2013, 13:05
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 24.10.2013, 13:36
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

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);

Вот только зачем..
Ответить с цитированием
  #6 (permalink)  
Старый 24.10.2013, 16:14
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

прикольная задачка.
только баян.
Задачка на смекалку
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34