Duplicata possible :
Comment puis-je prédéfinir les arguments dans l'appel de fonction JavaScript ? (Application partielle de la fonction)
J'ai besoin de pouvoir passe une référence à une fonction avec un jeu de paramètres donné .
Voici un exemple de passage d'une référence sans paramètres :
var f = function () {
//Some logic here...
};
var fr = f; //Here I am passing a reference to function 'f', without parameters
fr(); //the 'f' function is invoked, without parameters
Maintenant, ce que je dois faire est de passer le même f
mais cette fois, je devrais passer des paramètres à la référence. Maintenant, je peux le faire avec une fonction anonyme et invoquer la fonction f
avec des paramètres à l'intérieur de la fonction nouvellement créée, comme ceci :
var f = function () {
//Some logic here...
};
var fr = function (pars) {
f(pars);
}; //Here I am creating an anonymous function, and invoking f inside it
fr({p : 'a parameter'}); //Invoking the fr function, that will later invoke the f function with parameters
Mais ma question est, Existe-t-il un moyen de transmettre une référence directe à l'interface de l'utilisateur ? f
Avec des paramètres à fr
mais sans l'enfermer dans une fonction anonyme ?
Que dois-je attribuer à fr
pour le rendre invocable sans paramètres ( fr()
), de sorte que f(1,2,3) est exécutée lorsque fr
est invoquée ?
[MISE À JOUR] J'ai suivi Jason Bunting La réponse de l'entreprise à ici sur le Fonction partielle et la fonction JavaScript qu'il y poste est exactement ce que je recherchais. Voici la solution :
function partial(func /*, 0..n args */) {
var args = Array.prototype.slice.call(arguments).splice(1);
return function() {
var allArguments = args.concat(Array.prototype.slice.call(arguments));
return func.apply(this, allArguments);
};
}