en.javascript.info/1-js/6-objects-more/4-call-apply/1-rewrite-sum-arguments/solution.md
Ilya Kantor 87bf53d076 update
2014-11-16 01:40:20 +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