Ok, así que pensé que entendía esto (sin juego de palabras), pero aparentemente no.esta palabra clave es objeto de ventana dentro de una función de constructor
var Constructor = function() {
var internalFunction = function() {
return this === window;
};
this.myMethod = function() {
alert(internalFunction());
};
};
var myObj = new Constructor();
myObj.myMethod();
Estas alertas true
. ¿Por qué no puede la función interna ver this
como el objeto? En su lugar, tengo que usar alert(internalFunction.call(this));
en myMethod
.
Editar: que estaba buscando una explicación de por qué se le asigna this
de esa manera, no soluciones tales como var self = this;
, etc. Lo siento si no lo dejan claro.
Ninguna de las respuestas a estas preguntas usa 'that'. Me siento traicionado. – hugomg
@missingno: No me gusta 'eso'. No es descriptivo Dicho esto, mi propia elección en mi respuesta no es mejor :) –
+1 para juegos de palabras involuntarios – SMC