Luc*_*cas 2 apache-flex flash actionscript-3
调用exampleFunction()和exampleFunction.call()有什么区别?Actionscript上有一个功能,允许您通过'call'方法使用函数.例如,要使用下面的'test'函数,我可以编写test()和test.call()
function test():void {
trace('function was called')
}
Run Code Online (Sandbox Code Playgroud)
有什么不同?
小智 12
与ECMAScript(从中派生AS)一样,它允许通过第一个参数指定"this"上下文.
请参阅Function.call文档.请注意有关函数与方法(或"绑定函数")和示例的注释.
那是,给定:
function f ():* { return this; }
var x:Object = {f: f};
Run Code Online (Sandbox Code Playgroud)
然后:
两者f.call(x)并且x.f()评价为xwhile而f()不是因为它具有不同的"this"(它评估为Global相反).
如果f.call()(没有参数)使用那么"this"将是NaN,而f()如上所述,具有Global"this".尝试trace(this)在测试代码中使用,因为它将产生更多有用的上下文信息.
快乐的编码.
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |