Je n’avais encore jamais utilisé cette fonction jusqu’à aujourd’hui. call() est en fait une méthode d’un objet function. On peut l’utiliser ainsi:
var maFonction = function(message) {
alert(message);
};
maFonction.call("Bonjour!");
Pensez à call() lorsque vous bâtissez des fonctions qui prennent d’autres fonctions en arguments, par exemple :
function message(texte, callback) {
if (confirm(texte)) {
callback.call();
}
}
message("Voulez-vous continuer?", function() { alert("Je continue"); });
C’était le truc Javascript de la journée!
Ce code fonctionne aussi :
function message(texte, callback) { if (confirm(texte)) { callback(); } }On utilise plutôt call() et apply() quand on veut créer une closure ou lorsqu’on veut binder une fonction à un objet en particulier.
Samori Gorse (9 décembre 2007 à 11:35 EST)
J’avais déjà utilisé cette syntaxe, mais pour une raison que j’ai oublié, je m’étais tourné vers
call(). Mais merci de le rappeler! :)Rémi Prévost (9 décembre 2007 à 18:38 EST)