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