2012-05-11 2 views

ответ

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/

+0

ТНХ для вашего ответа – jbduzan

Смежные вопросы