User Guide

330 Appendix E: Object-Oriented Programming with ActionScript 1
Using Function object properties in ActionScript 1
You can specify the object to which a function is applied and the parameter values that are passed
to the function, using the
call() and apply() methods of the Function object. Every function
in ActionScript is represented by a Function object, so all functions support
call() and
apply()
. When you create a custom class using a constructor function, or when you define
methods for a custom class using a function, you can invoke
call() and apply() for the
function.
Invoking a function using the Function.call() method in ActionScript 1
The
Function.call() method invokes the function represented by a Function object.
In almost all cases, the function call operator (
()) can 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 shown in the following example:
myObject.myMethod(1, 2, 3);
In some situations, you might want this to point somewhere else; for instance, if a function must
be invoked as a method of an object but is not actually stored as a method of that object, as shown
in the following example:
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 Flash ActionScript Language Reference.
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
myFunction. You can specify zero or more parameters.
Specifying the object to which a function is applied using Function.apply()
in ActionScript 1
The
Function.apply() method specifies the value of this to be used within any function that
ActionScript calls. This method also specifies the parameters to be passed to any called function.
The parameters are specified as an Array object. This is often useful when the number of
parameters to be passed is not known until the script actually executes.