Tengo un pequeño problema con un objeto que usa jquery. como jquery sobrescribe este puntero, no puedo llamar a mis métodos secundarios sin recurrir a guardar el puntero en una variable que es la preferida o ¿hay una mejor solución? ¿Hay alguna manera de guardar este puntero en el objeto (como un método de clase con otro nombre)?javascript llamadas a métodos internos al usar jquery
Intentando aprender javascript con las partes buenas de Javascript, pero no creo que entienda todas las peculiaridades todavía :).
//from javscript the good parts
if (typeof Object.create !== 'function') {
Object.create = function (o) {
var F = function() {};
F.prototype = o;
return new F();
};
}
var Tester = {
printData: function (text) {
console.log(text)
},
start: function() {
var that = this;
jQuery('id').click(function() {
that.printData('firstColumn')
});
}
};
var test = Object.create(Tester)
test.start()
Saludos Anders Olme supongo que esto es similar a Overwritten "this" variable problem or how to call a member function?
¿Estás usando Firefox 4? 'Object.create' es muy nuevo y solo es compatible con FF4 AFAIK. – RoToRa
No hay mejor solución, creo - 'var that = this' es una forma clásica de resolver problemas como ese –
arrebaté el código de creación de objeto de las partes buenas de javscript y lo tengo incluido en otro lugar. – Buzzzz