en.javascript.info/1-js/6-objects-more/6-call-apply/2-apply-function-skip-first-argument/solution.md
2015-03-10 12:36:58 +03:00

477 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