Escribiendo OO Javascript con jQuery
Vengo de un fondo de Prototype JS donde se fomenta Javascript OO mediante el uso deClass.create()
. Ahora estoy haciendo un trabajo JQuery y estoy tratando de escribir un código JQuery correctamente estructurado donde pueda, por ejemplo, llamar a la misma función de objeto desde dos controladores de eventos de clic diferentes.
Aquí está el código en 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!
}
});
e pregunto cómo se puede replicar el siguiente código en JQuery, donde no hay forma de vincular una llamada de función al objeto en el que se llama, y 'este' es siempre el elemento en el que se hace clic.
He oído hablar de una forma de hacerlo con el patrón de 'módulo' de Douglas Crockford (http://www.yuiblog.com/blog/2007/06/12/module-pattern/) pero me encantaría que alguien me pudiera mostrar cómo implementaría el código anterior utilizando JQuery y ese patrón.
Gracias por adelantado