F > Function.call |
Function.call
Disponibilité
Flash Player 6.
Usage
maFonction.call(cetObjet,paramètre1, ...,paramètreN)
Paramètres
cetObjet Spécifie la valeur de this dans le corps de la fonction.
paramètre1 Un paramètre à transmettre à maFonction. Vous pouvez spécifier zéro ou plusieurs paramètres.
paramètreN
Renvoie
Rien.
Description
Méthode ; invoque la fonction représentée par un objet Function. Chaque fonction ActionScript est représentée par un objet Function, toutes les fonctions supportant donc la méthode call.
Dans presque tous les cas, l'opérateur d'appel de fonction (()) peut être utilisé au lieu de la méthode call. L'opérateur d'appel de fonction permet de rédiger le code de façon concise et lisible. La méthode call est surtout utile lorsque le paramètre this de l'invocation de fonction doit être explicitement contrôlé. Normalement, si une fonction est invoquée en tant que méthode d'un objet, dans le corps de la fonction, this est défini sur monObjet, comme dans l'exemple suivant :
monObjet.maMéthode(1, 2, 3);
Dans certaines situations, vous pourrez vouloir que this désigne autre chose ; par exemple, si une fonction doit être invoquée en tant que méthode d'un objet, mais n'est pas effectivement stockée comme méthode de cet objet.
monObjet.maMéthode.call(monAutreObjet, 1, 2, 3);
Vous pouvez transmettre la valeur null pour le paramètre cetObjet pour invoquer une fonction en tant que fonction ordinaire et pas en tant que méthode d'un objet. Par exemple, les invocations de fonction suivantes sont équivalentes :
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)
Exemple
Cet exemple utilise la méthode call pour imposer à une fonction de se comporter comme une méthode d'un autre objet, sans stocker la fonction dans l'objet.
function MonObjet() {
}
function MaMéthode(obj) {
trace("this == obj? " + (this == obj));
}
var obj = new MonObjet();
MaMéthode.call(obj, obj);
L'action trace envoie le code suivant à la fenêtre Sortie :
this == obj? true