F > Function.call |  |

Function.call

Function, Function.call, call

Availability

Flash Player 6.

Usage

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

Parameters

`thisObject` Specifies the value of `this` within the function body.

`parameter1` A parameter to be passed to the `myFunction`. You can specify zero or more parameters.

`parameterN`

Returns

Nothing.

Description

Method; invokes the function represented by a Function object. Every function in ActionScript is represented by a Function object, so all functions support the `call` method.

In almost all cases, the function call operator (`()`) may be used instead of the `call` method. The function call operator makes for 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)

Example

This example uses the `call` method to make a function behave as a method of another object, without storing the function in the object.

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

The `trace` action sends the following code to the Output window:

    this == obj? true