en.javascript.info/01-js/06-objects-more/04-call-apply/01-rewrite-sum-arguments/solution.md
Ilya Kantor f301cb744d init
2014-10-26 22:10:13 +03:00

693 B
Raw Blame History

Первый вариант

//+ run
function sumArgs() {
  // скопируем reduce из массива
  arguments.reduce = [].reduce;
  return arguments.reduce(function(a, b) { 
    return a + b;
  });
}

alert( sumArgs(4,5,6) ); // 15

Второй вариант

Метод call здесь вполне подойдёт, так как требуется вызвать reduce в контексте arguments с одним аргументом.

//+ run
function sumArgs() {
  // запустим reduce из массива напрямую
  return [].reduce.call(arguments, function(a, b) { 
    return a + b; 
  });
}

alert( sumArgs(4,5,6) ); // 15