在动作脚本 1 中使用 Function 对象属性

注意:如果您从未使用动作脚本编写过面向对象的脚本,而且不需要以 Flash Player 5 作为目标播放器,则不应使用本节中的信息,因为我们不鼓励使用动作脚本 1 来编写脚本;而应参见使用动作脚本 2.0 创建类以获得有关使用动作脚本 2.0 的信息。

使用 Function 对象的 call()apply() 方法可以指定要将函数应用于哪个对象,以及要传递给该函数的参数值。动作脚本中的每个函数都由一个 Function 对象表示,因此所有函数都支持 call()apply() 方法。使用构造函数创建自定义类时,或使用函数为自定义类定义方法时,可以调用该函数的 call()apply() 方法。

在动作脚本 1 中使用 Function.call() 方法调用函数

注意:如果您从未使用动作脚本编写过面向对象的脚本,而且不需要以 Flash Player 5 作为目标播放器,则不应使用本节中的信息,因为我们不鼓励使用动作脚本 1 来编写脚本;而应参见使用动作脚本 2.0 创建类以获得有关使用动作脚本 2.0 的信息。

Function.call() 方法调用由 Function 对象表示的函数。

几乎在所有情况下,都可以使用函数调用运算符 (()) 代替 call() 方法。函数调用运算符使代码简明易读。call() 方法主要用于需要显式控制函数调用的 this 参数的情况。通常,如果将函数作为对象的方法来调用,则在函数体内,this 设置为 myObject,如下所示:

myObject.myMethod(1, 2, 3);

在某些情况下,您可能希望 this 指向其它地方,例如以下这种情况:函数必须作为对象的方法进行调用,但该函数实际上并不是作为该对象的方法存储的。

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

将值 null 传递给 thisObject 参数即可将函数作为常规函数(而不是作为对象的方法)进行调用。例如,下面的函数调用是等效的:

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

有关更多信息,请参见 Function.call()

使用 Function.call 方法调用函数:

在动作脚本 1 中使用 Function.apply() 指定要将函数应用于哪个对象

注意:如果您从未使用动作脚本编写过面向对象的脚本,而且不需要以 Flash Player 5 作为目标播放器,则不应使用本节中的信息,因为我们不鼓励使用动作脚本 1 来编写脚本;而应参见使用动作脚本 2.0 创建类以获得有关使用动作脚本 2.0 的信息。

Function.apply() 方法指定将在动作脚本调用的任何函数内使用的 this 的值。此方法还指定要传递给任何被调用函数的参数。

参数被指定为 Array 对象。如果在脚本实际执行前,无法知道要传递的参数的数量,那么这种方法通常很有用。

有关更多信息,请参见 Function.apply()

使用 Function.apply() 指定要将函数应用于哪个对象: