call(Function.call 方法)
public call(thisObject:Object, [parameter1:Object]) : Object
调用 Function 对象表示的函数。ActionScript 中的每个函数都由一个 Function 对象来表示,所以所有的函数都支持此方法。
几乎在所有的情形下,都可以使用函数调用运算符 (()
) 来代替此方法。函数调用运算符使代码简明易读。此方法主要用于需要显式控制函数调用中的 thisObject
参数时。通常,如果将函数作为对象的方法来调用,则在函数体内,thisObject
设置为 myObject
,如下面的示例所示:
myObject.myMethod(1, 2, 3);
在某些情况下,您可能希望 thisObject
指向其它地方;例如,函数必须作为对象的方法进行调用,但该函数实际上并不作为该对象的方法进行存储。
myObject.myMethod.call(myOtherObject, 1, 2, 3);
您可以将值 null 传递给 thisObject
参数,以便作为常规函数而不是作为对象的方法来调用函数。例如,下面的函数调用是等效的:
Math.sin(Math.PI / 4)
Math.sin.call(null, Math.PI / 4)
返回被调用函数指定为返回值的值。
可用性:ActionScript 1.0;Flash Player 6
参数
thisObject:Object
- 一个对象,指定函数体内 thisObject
的值。
parameter1:Object
[可选] - 要传递给 myFunction 的参数。可以指定零个或多个参数。
返回
Object
-
示例
下面的示例使用 Function.call()
使函数表现得像另一个对象的方法,而不将函数存储在该对象中:
function myObject() {
}
function myMethod(obj) {
trace("this == obj? " + (this == obj));
}
var obj:Object = new myObject();
myMethod.call(obj, obj);
trace()
语句将显示:
this == obj? true