Function.call()

Disponibilidad

Flash Player 6.

Sintaxis

myFunction.call(thisObject, parameter1, ..., parameterN)

Parámetros

thisObject Especifica el valor de this en el cuerpo de la función.

parameter1 Parámetro que se pasa a myFunction. Puede especificar cero o más parámetros.

parameterN 

Valor devuelto

Ninguno.

Descripción

Método; invoca la función representada por un objeto Function. Cada función de ActionScript se representa mediante un objeto Function, de modo que todas las funciones admiten este método.

En la mayoría de los casos, puede utilizarse el operador de llamada de función (()) en lugar de este método. El operador de llamada de función produce código preciso y fácil de leer. Este método es de gran utilidad cuando debe controlarse de forma explícita el parámetro this de la invocación de la función. Normalmente, si se invoca una función como método de un objeto, this se establece en myObject dentro del cuerpo de la función como el caso siguiente:

myObject.myMethod(1, 2, 3);

En algunas situaciones, es posible que desee que this haga referencia a otro elemento; por ejemplo, si debe invocarse una función como un método de un objeto, pero en realidad no se almacena como método de dicho objeto.

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

Puede pasar el valor null para el parámetro thisObject para invocar una función como función regular y no como método de un objeto. Por ejemplo, las llamadas de función siguientes son equivalentes:

Math.sin(Math.PI / 4)
Math.sin.call(null, Math.PI / 4)

Ejemplo

En este ejemplo se utiliza Function.call() para hacer que una función se comporte como método de otro objeto, sin almacenar la función en el objeto.

function MyObject() {
}
function MyMethod(obj) {
  trace("this == obj? " + (this == obj));
}
var obj = new MyObject();
MyMethod.call(obj, obj);

La acción trace() envía el código siguiente al panel Salida:

this == obj? true