Using Objects in ActionScript > Controlling classes or methods with Function object properties > Invoking a function using the Function.call method

 

Invoking a function using the Function.call method

The Function.call method invokes the function represented by a Function object.

In almost all cases, the function call operator (()) may be used instead of the call method. The function call operator creates code that is concise and readable. The call method is primarily useful when the this parameter of the function invocation needs to be explicitly controlled. Normally, if a function is invoked as a method of an object, within the body of the function, this is set to myObject, as in the following:

myObject.myMethod(1, 2, 3);

In some situations, you may want this to point somewhere else; for example, if a function must be invoked as a method of an object but is not actually stored as a method of that object.

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

You can pass the value null for the thisObject parameter to invoke a function as a regular function and not as a method of an object. For example, the following function invocations are equivalent:

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

For more information, see Function.call in the ActionScript Dictionary.

 
To invoke a function using the Function.call method:

Use the following syntax:

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

The method takes the following parameters:

The parameter thisObject specifies the value of this within the function body.

The parameters parameter1..., parameterN specify parameters to be passed to the myFunction. You can specify zero or more parameters.