哪个是最佳实践,哪个会带来更好的性能?
使用闭包还是 dojo.lang.hitch ?
谢谢
实际上lang.hitch(scope, method)
返回一个闭包,即它返回一个函数,它将调用method
给定的函数scope
。这在面向对象代码中定义回调时特别有用,因此您可以编写:
on(dom.byId("button"), "click", lang.hitch(this, "callback"));
代替:
on(dom.byId("button"), "click", function(scope, method) {
return function() {
method.apply(scope);
}
}(this, this["callback"])); // execute the anonymous function immediately to get a closure
像这样的东西会起作用:
on(dom.byId("button"), "click", this["callback"]);
但是方法this
里面callback
会指向button
.
请参阅 jsFiddle 中的完整代码和其他详细信息:http: //jsfiddle.net/phusick/r7jLr/