Je suis en train de passer un paramètre à une fonction à utiliser comme rappel, comment puis-je faire cela ?
Réponses
Trop de publicités?Votre question n'est pas claire. Si vous vous demandez comment vous pouvez le faire d'une manière simple, vous devriez jeter un oeil à la ECMAScript 5ème édition de la méthode .bind(), qui est un membre de la Fonction.le prototype. En l'utilisant, vous pouvez faire quelque chose comme ceci:
function tryMe (param1, param2) {
alert (param1 + " and " + param2);
}
function callbackTester (callback) {
callback();
}
callbackTester(tryMe.bind(null, "hello", "goodbye"));
Vous pouvez également utiliser le code suivant, qui ajoute de la méthode, si elle n'est pas disponible dans le courant du navigateur:
// From Prototype.js
if (!Function.prototype.bind) { // check if native implementation available
Function.prototype.bind = function(){
var fn = this, args = Array.prototype.slice.call(arguments),
object = args.shift();
return function(){
return fn.apply(object,
args.concat(Array.prototype.slice.call(arguments)));
};
};
}
Enveloppez la ou les fonctions «enfant» passées avec / avec les arguments dans les wrappers de fonction pour empêcher leur évaluation lors de l'appel de la fonction «parent».
function outcome(){
return false;
}
function process(callbackSuccess, callbackFailure){
if ( outcome() )
callbackSuccess();
else
callbackFailure();
}
process(function(){alert("OKAY");},function(){alert("OOPS");})