Soy nuevo en JavaScript, y estoy teniendo problemas para entender este código:malentendido de JavaScript cierres
function addProperty(o) {
var value;
o["get"] = function() { return value; }
o["set"] = function(v) { value = v; }
}
var a = {};
addProperty(a);
var b = {};
addProperty(b);
a.set(4);
b.set(5);
print("a is " + a.get() + "; b is " + b.get());
Esta impresora (en v8/d8) a is 4; b is 5
. Si hago un comentario sobre la línea var value;
, obtengo a is 5; b is 5
. ¿Dónde está el objeto 'valor' y por qué hay dos? Gracias.
No entiendo "¿por qué? allí dos de ellos "parte de la pregunta. ¿Podrías aclararlo por favor? – slinzerthegod
El objeto 'a' tiene un valor asociado, que contiene el número entero '4', y el objeto 'b' tiene un valor asociado, que contiene el número entero '5'. – EML