注意:如果您从未使用动作脚本编写过面向对象的脚本,而且不需要以 Flash Player 5 作为目标播放器,则不应使用本节中的信息,因为我们不鼓励使用动作脚本 1 来编写脚本;而应参见使用动作脚本 2.0 创建类以获得有关使用动作脚本 2.0 的信息。
使用 Function 对象的 call()
和 apply()
方法可以指定要将函数应用于哪个对象,以及要传递给该函数的参数值。动作脚本中的每个函数都由一个 Function 对象表示,因此所有函数都支持 call()
和 apply()
方法。使用构造函数创建自定义类时,或使用函数为自定义类定义方法时,可以调用该函数的 call()
和 apply()
方法。
注意:如果您从未使用动作脚本编写过面向对象的脚本,而且不需要以 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()
。
myFunction
.call(thisObject
,parameter1
, ...,parameterN
)
该方法具有以下参数:
thisObject
指定 this
在函数体内的值。 parameter1
...,
parameterN
指定要传递给 myFunction
的参数。可以指定零个或多个参数。 注意:如果您从未使用动作脚本编写过面向对象的脚本,而且不需要以 Flash Player 5 作为目标播放器,则不应使用本节中的信息,因为我们不鼓励使用动作脚本 1 来编写脚本;而应参见使用动作脚本 2.0 创建类以获得有关使用动作脚本 2.0 的信息。
Function.apply()
方法指定将在动作脚本调用的任何函数内使用的 this
的值。此方法还指定要传递给任何被调用函数的参数。
参数被指定为 Array 对象。如果在脚本实际执行前,无法知道要传递的参数的数量,那么这种方法通常很有用。
有关更多信息,请参见 Function.apply()
。
myFunction
.apply(thisObject
,argumentsObject
)
该方法具有以下参数:
thisObject
指定要将 myFunction
应用于哪个对象。argumentsObject
定义一个数组,该数组的元素将作为参数传递给 myFunction
。