为什么as3编码器不使用闭包?

gui*_* 桂林 1 actionscript-3

我看到很多像这样的代码

foo.addListener(Event.CLICK, clickHandler);

function clickHandler(event:Event):void {
   //...
}
Run Code Online (Sandbox Code Playgroud)

但是,为什么不呢?

foo.addListener(Event.CLICK, function(event:Event):void {
  //...
});
Run Code Online (Sandbox Code Playgroud)

我认为以下是更好的,我使用flex sdk 4.5.1,我不知道它是否与版本有关,或者是关于优化的东西?

zzz*_*Bov 5

即使在其他ECMAScript变体中(好的,所以JavaScript),通常使用对函数的引用来绑定事件比在匿名函数中转储更好.

使用第一种形式更好的原因是解除事件的绑定.如果您对绑定事件引用,则可以取消绑定,否则您将不得不以其他方式取消绑定事件.


其他信息,ECMAScript中的所有函数都是闭包.它们关闭包含的变量并设置新的范围.两个示例都使用闭包.