Я новичок в JavaScript, и у меня проблемы с пониманием этого кода:
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());
Это печатает (в v8 / d8) a равно 4; b равно 5
. Если я закомментирую строку var value;
, я получу a равно 5; b равно 5
. Где находится объект «значение» и почему их два? Спасибо.