Código:
Entonces yo puedo instanciar la clase y ejecutar un método:clase = function() { alert("Constructor"); this.un_metodo = function() { this.otro_metodo(); } this.otro_metodo = function() { alert("Soy otro"); } }
Código:
Pero si en vez de definir otro_metodo como lo he hecho, con una función anónima, lo hago como una función normal:a = new clase(); a.un_metodo();
Código:
Si vuelvo a instanciar la clase y ejecutar un_metodo saltará un error: this.otro_metodo() no existe. ¿Cómo se explica que otro_metodo() sólo exista en el ámbito de clase, pudiendo ser llamado como otro_metodo() (sin la cláusula this) pero no con la cláusula this? ¿Es una función dentro de la clase... pero no es un método de la clase...?clase = function() { alert("Constructor"); this.un_metodo = function() { this.otro_metodo(); } function otro_metodo() { alert("Soy otro"); } }
¿Algún experto en la sala que me lo explique? Gracias!