documentation flash function call

Vous êtes ici: Les articles techniques » documentation » Eléments du langage ActionScript » Function » call (méthode Function.call)

call (méthode Function.call)

 
public call(thisObject:Object, [parameter1:Object]) : Object

Appelle la fonction représentée par un objet Function. Toutes les fonctions dans ActionScript sont représentées par un objet Function, de sorte que toutes les fonctions prennent en charge cette méthode.

Dans presque tous les cas, l’opérateur d’appel de fonction (()) peut être utilisé au lieu de cette méthode. L’opérateur de la fonction call génère un code concis et lisible. Cette méthode est surtout utile lorsque le paramètre thisObject 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, thisObject est défini sur myObject, comme illustré dans l’exemple suivant :

myObject.myMethod(1, 2, 3);

Dans certains cas, vous voudrez peut-être que thisObject pointe autre part ; par exemple, si une fonction doit être invoquée en tant que méthode d’un objet alors qu’elle n’est pas stockée comme méthode de cet objet :

myObject.myMethod.call(myOtherObject, 1, 2, 3);

Vous pouvez transmettre la valeur null pour le paramètre thisObject pour invoquer une fonction en tant que fonction ordinaire et non 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)

Renvoie la valeur spécifiée en tant que valeur renvoyée par la fonction appelée.

Disponibilité : ActionScript 1.0 ; Flash Player 6

Paramètres

thisObject:Object - Objet qui spécifie la valeur de thisObject dans le corps de la fonction.

parameter1:Object [facultatif] - Paramètre à transmettre à myFunction. Vous pouvez spécifier zéro ou plusieurs paramètres.

Valeur renvoyée

Object -

Exemple

L’exemple suivant utilise Function.call() pour qu’une fonction adopte le comportement d’une méthode d’un autre objet, sans enregistrer la fonction dans l’objet :

function myObject() {
}
function myMethod(obj) {
     trace("this == obj? " + (this == obj));
}
var obj:Object = new myObject();
myMethod.call(obj, obj);

L’instruction trace() affiche :

this == obj? true

Voir également




veille
inscrits inscrits ! Compensation à la rédaction
  • Inscription au wiki
  • Connexion

vod