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
posted on 2006-10-08 13:15  包包  阅读(5356)  评论(0编辑  收藏  举报