![]() | |
注意:如果您从未使用动作脚本编写过面向对象的脚本,而且不需要以 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()。
使用 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()。
使用 Function.apply() 指定要将函数应用于哪个对象:myFunction.apply(thisObject,argumentsObject)
该方法具有以下参数:
thisObject 指定要将 myFunction 应用于哪个对象。argumentsObject 定义一个数组,该数组的元素将作为参数传递给 myFunction。 ![]() | |