Flash Player 6。
myFunction
.call(thisObject
,parameter1
, ...,parameterN
)
thisObject
指定函数体内 this
的值。
parameter1
要传递给 myFunction
的参数。可以指定零个或多个参数。
parameterN
无。
方法;调用 Function 对象表示的函数。动作脚本中的每个函数都由一个 Function 对象来表示,所以所有的函数都支持此方法。
几乎在所有的情形下,函数调用运算符 (()
) 都可以代替此方法来使用。函数调用运算符使代码简明易读。此方法主要用于需要显式控制函数调用的 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 MyObject() { } function MyMethod(obj) { trace("this == obj?" + (this == obj)); } var obj = new MyObject(); MyMethod.call(obj, obj);
trace() 动作将以下代码发送到“输出”面板:
this == obj? true