Estoy tomando un enfoque orientado a objetos con Javascript, por dos razones. Una, porque me ayuda a aprender, y dos, solo en caso de que mi código se distribuya.Asignando 'esto' a una variable en Javascript
Ya tengo asignando funciones a variables y usando this
para variables públicas. Sin embargo, estoy teniendo problemas al usar this
. Cuando estoy en una función "privada", this
se refiere a un alcance diferente, y no puedo acceder a las variables en this
. Ilustraré mi punto.
var ClassObject = function() {
this.var1 = 'Hello';
var var2 = 786;
this.func1 = function() {
alert(this.var1); // Alerts Hello
alert(var2); // Alerts 786
}
var func2 = function() {
alert(this.var1); // Alerts undefined
alert(var2); // Alerts 786
}
}
La única forma que he encontrado para dar acceso a func2
this.var1
era hacer otra variable asignada a this
: var c = this
. ¿Es esta la mejor manera de llevar a cabo esta tarea, o incluso ampliamente aceptada? ¿Alguien puede ofrecer una mejor solución?
Gracias a todos.
Respuesta corta: sí, esto es perfectamente aceptable. He visto la variable "self" utilizada para ese propósito: 'var self = this;' –