Sono nuovo di JavaScript, e sto avendo un problema comprensione di questo codice:Incomprensione di JavaScript chiusure
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());
Questo stampa (in v8/D8) a is 4; b is 5
. Se commento la riga var value;
, ottengo a is 5; b is 5
. Dov'è l'oggetto 'valore', e perché ci sono due di questi? Grazie.
Non capisco il "perché ce ne sono due "parte della domanda. Potresti per favore chiarire? – slinzerthegod
L'oggetto 'a' ha un valore associato ad esso, che contiene un intero '4', e l'oggetto 'b' ha un valore associato ad esso, che contiene un intero '5'. – EML