2014-12-24 8 views
5

"myObject.user"오브젝트의 값 변경 중에 트리거 할 "세트"기능을 작성했습니다. 그래서 내가 가치를 바꿀 때 나는 경계하고있다. 하지만 "myObject.newuser [0] .id"객체 안의 값을 업데이트 할 때 집합이 호출되지 않습니다. 내부 값이 변경되면 전역 집합이 작동하도록 코드를 변경하는 방법. 즉이 코드에 대해 두 가지 경고를 받아야합니다. 오브젝트 값에 대한 자바 스크립트 설정자

+3

글쎄 당신은 물론 setter를 트리거하지 않습니다 내부 개체를 변경하고 있습니다. setter 인터페이스를 사용하여 데이터 구조를 구현하는 것이 좋습니다. 그것은 더 간단 할 것이다. – dfsq

답변

0

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";
그럼 당신은 그때는 기존 사용자의 값에 새 값을 설정합니다 myObject.user[0].id에 재산 myObject.newuser[0].id을 변경해야합니다.

이전에 추가 한 값을 새 값으로 변경 했으므로

세터에 대한 자세한 내용은 MDN link을 참조하십시오.