call(Function.call 方法)

本文详细介绍了ActionScript中的Function.call方法,解释了如何使用此方法来显式地控制函数调用中的thisObject参数,并通过示例展示了如何让一个函数表现得像另一个对象的方法。

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

转载于:https://www.cnblogs.com/baobaoandxiangxiang/archive/2006/10/08/523332.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值