5

我创建了一个“set”函数,它将在我的对象“myObject.user”的值更改期间触发。因此,当我更改值时,我会变得警觉。但是当我更新对象“myObject.newuser[0].id”中的值时,该集合没有调用。如何更改代码,以便如果更改任何内部值,则全局集应该可以工作。即对于这段代码,我应该得到两个警报。

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";

4

1 回答 1

0

那么您需要将属性更改为myObject.newuser[0].idmyObject.user[0].id然后它将新值设置为现有用户的值。

因为你用新的价值改变了以前增加的价值。

有关 setter 的更多详细信息,请参阅MDN 链接

于 2014-12-25T09:47:34.297 回答