estoy trabajando con jQuery y tratar de aplicar algunos principios básicos Javascript programación orientada a objetos a un conjunto de funciones que controlan el comportamiento estacionario. Sin embargo, no puedo entender cómo hacer que la palabra clave "this" se refiera a la instancia del objeto que estoy creando. Mi código de ejemplo es:La aplicación de programación orientada a objetos con jQuery
var zoomin = new Object();
zoomin = function() {
// Constructor goes here
};
zoomin.prototype = {
hoverOn: function() {
this.hoverReset();
// More logic here using jQuery's $(this)...
},
hoverReset: function() {
// Some logic here.
}
};
// Create new instance of zoomin and apply event handler to matching classes.
var my_zoomin = new zoomin();
$(".some_class").hover(my_zoomin.hoverOn, function() { return null; });
La línea problemática en el código anterior es la función de "this.hoverReset()" dentro de la hoverOn() llamada. Como "esto" ahora se refiere al elemento sobre el que se colocó, no funciona según lo previsto. Básicamente me gustaría llamar a la función hoverReset() para esa instancia del objeto (my_zoomin).
¿Hay alguna manera de hacer esto?
Gracias!
+1 para una buena explicación – rzetterberg
Gracias por su excelente respuesta. Realmente me ha aclarado las cosas :-) Definitivamente voy a buscar hacer un plugin. – Ralph