Я исхожу из фона прототипа JS, где OO Javascript поощряется с помощью Class.create ()
. Сейчас я выполняю некоторую работу с JQuery и пытаюсь написать некоторый правильно структурированный код JQuery, в котором я могу, например, вызывать одну и ту же объектную функцию из двух разных обработчиков событий щелчка.
Вот код в Prototype:
document.observe("dom:loaded", function() {
// create document
APP.pageHelper = new APP.PageHelper();
});
// namespace our code
window.APP = {};
// my class
APP.PageHelper = Class.create({
// automatically called
initialize: function(name, sound) {
this.myValue = "Foo";
// attach event handlers, binding to 'this' object
$("myButton").observe("click", this.displayMessage.bind(this))
},
displayMessage: function() {
console.log("My value: " + this.myValue); // 'this' is the object not the clicked button!
}
});
Мне интересно, как следующий код может быть воспроизведен в JQuery, где нет способа привязать вызов функции к объекту, в котором он вызывается, и 'this' всегда элемент нажат.
Я слышал о способе сделать это с помощью шаблона «модуль» Дугласа Крокфорда (http://www.yuiblog.com/blog/2007/06/12/module-pattern/), но мне бы хотелось, чтобы кто-нибудь мог покажите мне, как реализовать приведенный выше код с помощью JQuery и этого шаблона.
Заранее спасибо.