Nombre d'arguments variable

Bonjour,

Bonjour à tous,
J'ai un tp à faire dans le cadre de mes études en informatique.
Ci dessous, le code JavaScript.
J'ai implementer la function sub() sans trop de soucis, en revanche je doit modifier la fonction adder afin qu'elle acceptee un nombre variable d'argument tel que :

adder()(0); // 0
adder()(1); // 0
adder(mult(2))(1); // 2
adder(mult(2), mult(2))(1); // 4
adder(mult(2), mult(2), mult(2))(1); // 6
adder(mult(2), sub(2), mult(2))(1); // 5

Mon professeur m'indique d'utiliser :

var args = Array.prototype.slice.call(arguments);
[1,2,3].forEach(function(val){console.log(val);});

Mais je ne comprend pas trop.

function adder(l,r){
return function(v){
return l(v) + r(v);
}
}

function mult(v){
return function(e){
return v*e;
}
}
function sub(x,y)
{
return x-y;
}
console.log(adder(mult(2), mult(4))(2));
console.log(sub(0,0));
console.log(sub(2,1));
console.log(sub(2,2));
console.log(sub(2,4));

Pouvez vous m'aider s'il vous plait ?
Merci d'avance.

2 réponses

  1. Voici un joli article pour toi: http://blog.sebarmeli.com/2010/11/12/understanding-array-prototype-slice-applyarguments/
    0
    1. Et appliqué à la fonction adder ça donne:


      function adder(){
      var args = Array.prototype.slice.call(arguments);
      return (function(i){
      var result = 0;
      for(arg in args){
      result += args[arg](i);
      }
      return result;
      });
      }

      0