5

オブジェクト「myObject.user」の値の変更中にトリガーされる「set」関数を作成しました。したがって、値を変更すると、アラートが表示されます。しかし、オブジェクト「myObject.newuser[0].id」内の値を更新しているとき、セットは呼び出されません。内部値が変更された場合にグローバル セットが機能するようにコードを変更する方法。つまり、このコードでは 2 つのアラートを受け取る必要があります。

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これにより、新しい値が既存のユーザーの値に設定されます。

以前に追加された値を新しい値に変更するためです。

セッターの詳細については、 MDN リンクを参照してください。

于 2014-12-25T09:47:34.297 に答える