Tôi mới đến JavaScript, và đang gặp một vấn đề tìm hiểu mã này:Sự hiểu lầm của JavaScript đóng cửa
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());
in này (trong v8/d8) a is 4; b is 5
. Nếu tôi nhận xét dòng var value;
, tôi nhận được a is 5; b is 5
. Đối tượng 'giá trị' ở đâu và tại sao có hai giá trị đó? Cảm ơn.
Tôi không hiểu "tại sao có hai trong số họ "một phần của câu hỏi. Ông có thể làm rõ? – slinzerthegod
Đối tượng 'a' có giá trị liên kết với nó, giữ số nguyên '4' và đối tượng 'b' có giá trị được liên kết với nó, giữ nguyên số nguyên '5'. – EML