Điều gì đang xảy ra trong mã này?Sử dụng một đối tượng làm khóa thuộc tính trong JavaScript
var a = {a:1};
var b = {b:2};
var c = {};
c[a] = 1;
c[b] === 1 // true!
c[b] = 2;
c[a] === 2 // true!
Cụ thể, tại sao không sử dụng nhìn lên b
trong c
trở lại các giá trị đã được lưu trữ trong một tài sản của a
?
Điều gì có nghĩa là sử dụng đối tượng làm khóa cho thuộc tính trong JavaScript?
Tôi đã thử nghiệm tính năng này trong Chrome/Node và trong Firefox.
hiện tại javascript không có hỗ trợ cho đối tượng dưới dạng khóa có thể nhận được chuỗi coherse (được chuyển đổi thành chuỗi) sẽ là [object Object] và lưu trữ giá trị do đó nó cho đúng đối tượng làm khóa, nhưng trong tương lai 'là thứ bạn có thể sử dụng để lưu trữ đối tượng dưới dạng khóa. – Sushil
Âm thanh thú vị @Sushil. Bạn có tham khảo thông tin về lớp Bản đồ tương lai tiềm năng này không? Tôi không thể tìm thấy nó được đề cập ở bất cứ nơi nào sau một vài phút tìm kiếm. –
thực hiện tương lai của nó cho ECMAScript 6 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Map đây u đi và bổ sung có một khái niệm WeakMap rất đẹp (cá nhân tôi thích nó) https : //developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/WeakMap tại đây u có thể đọc về nó – Sushil