我看到很多像这样的代码
foo.addListener(Event.CLICK, clickHandler);
function clickHandler(event:Event):void {
//...
}
但是,为什么不呢?
foo.addListener(Event.CLICK, function(event:Event):void {
//...
});
我认为以下更好,我使用的是flex sdk 4.5.1,我不知道它是否与版本有关,还是有关优化的内容?
答案 0 :(得分:5)
即使在其他ECMAScript变体中(好的,所以JavaScript),通常使用对函数的引用来绑定事件比在匿名函数中转储更好。
使用第一种形式更好的原因是解除事件的绑定。如果你拥有对绑定事件的引用,你可以取消绑定它,否则你不得不以其他方式解除绑定事件。
其他信息,ECMAScript中的所有函数都是闭包。它们关闭包含的变量并设置新的范围。两个示例都使用闭包。
答案 1 :(得分:1)
表现不是一个小问题:http://gskinner.com/talks/quick/#52