en.javascript.info/1-js/6-objects-more/4-call-apply/2-apply-function-skip-first-argument/solution.md
Ilya Kantor 87bf53d076 update
2014-11-16 01:40:20 +03:00

461 B

//+ run
function sum() {
  return [].reduce.call(arguments, function(a, b) { return a + b; });
}
function mul() {
  return [].reduce.call(arguments, function(a, b) { return a * b; });
}

*!*
function applyAll(func) {
  return func.apply(this, [].slice.call(arguments, 1) );
}
*/!*

alert( applyAll(sum, 1, 2, 3) ); // 6
alert( applyAll(mul, 2, 3, 4) ); // 24
alert( applyAll(Math.max, 2, -2, 3) ); // 3
alert( applyAll(Math.min, 2, -2, 3) ); // -2