2

哪个是最佳实践,哪个会带来更好的性能?

使用闭包还是 dojo.lang.hitch ?

谢谢

4

1 回答 1

3

实际上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/

于 2012-05-11T09:16:12.453 回答