Tôi đã tạo một hàm "set" mà nó sẽ kích hoạt trong khi thay đổi giá trị của đối tượng "myObject.user" của tôi. Vì vậy, khi tôi thay đổi giá trị tôi đang nhận được cảnh báo. nhưng khi tôi đang cập nhật giá trị bên trong đối tượng "myObject.newuser [0] .id" bộ này không gọi. Làm thế nào để thay đổi mã như vậy mà nếu bất kỳ giá trị bên trong được thay đổi tập toàn cầu nên làm việc. tức là cho mã này tôi sẽ nhận được hai cảnh báo.Thiết lập Javascript cho giá trị của đối tượng
var myObject = {};
myObject.user;
Object.defineProperty(myObject, 'newuser', {
get: function() { return this.user;},
set: function(value) { alert('Updated');this.user=value;}
});
myObject.newuser = [{"id":"user1"}];
myObject.newuser[0].id="user2";
Vâng, bạn đang thay đổi đối tượng bên trong mà tất nhiên sẽ không kích hoạt setter. Tôi khuyên bạn nên thực hiện cấu trúc dữ liệu với giao diện setter. Nó sẽ đơn giản hơn. – dfsq