en.javascript.info/1-js/6-objects-more/6-call-apply/1-rewrite-sum-arguments/solution.md
2015-01-14 10:23:45 +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