Javascript关闭VS dojo lang.hitch

时间:2012-05-11 07:46:46

标签: javascript dojo closures

哪种方法最佳,哪种方式有更好的效果?

使用closure或dojo.lang.hitch?

由于

1 个答案:

答案 0 :(得分: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/