Este código da como resultado "!"
que se registra en la consola.detalles de cierres en JavaScript y funciones anónimas
var g = {};
(function() {
var t = this;
t.x = "x";
g.a = function() {
console.log(t.x);
};
})();
(function() {
var t = this;
t.x = "!";
g.b = function() {
console.log(t.x);
};
})();
g.a();
hacer funciones anónimas comparten un this
? ¿Estoy usando this
mal? Realmente no entiendo lo que está pasando aquí.
Me gustaría g.a()
para continuar devolviendo el valor de x
definido en la primera función anónima.
Estoy usando node.js si hace la diferencia.
¿No 'esto' se refiere a la función a veces? –
@luxun: ¿Te refieres a la función en sí? No nunca. –
Bueno, nunca, a menos que configures las cosas específicamente para que así sea, pero eso sería raro. Ciertamente no lo hace por defecto ni nada. – Pointy