Я создал функцию «set», с которой она будет срабатывать при изменении значения моего объекта «myObject.user». Поэтому, когда я меняю значение, я получаю предупреждение. но когда я обновляю значение внутри объекта «myObject.newuser [0] .id», этот набор не вызывает. Как изменить код так, чтобы при изменении любого внутреннего значения глобальный набор работал. т.е. для этого кода я должен получить два предупреждения.Javascript setter для значения объекта
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";
Ну, вы меняете внутренний объект, который, конечно, не вызовет сеттер. Я рекомендую реализовать структуру данных с помощью интерфейса setter. Это было бы проще. – dfsq