https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Object/watch자바 스크립트 : 객체의 모든 속성에 대한 모질라 .watch() 기능 (아마도 크로스 브라우저)
.watch() 메소드는 한마디로이 작업을 수행 : "속성에 대한 시계는 값을 할당 할 수 그럴 때 기능을 실행합니다. "
긴 설명 형식 : "이 객체에서 prop라는 속성에 대한 할당을 감시하고 prop가 설정 될 때마다 handler (prop, oldval, newval)를 호출하고 반환 값을 해당 속성에 저장합니다.) 수정 된 newval을 반환하거나 (또는 oldval을 반환하여) 값 할당. " 내가 그와 비슷한 뭔가를 찾고 있어요 Object.watch() for all browsers?
: 그것은 여기에 모든 브라우저에서 작동하도록 점점에 대한 질문이 있습니다
. 내가 찾고있는이 사양에 맞게 사용할 수있는 방법입니다 : "이 개체의 모든 속성에 할당을 감시하고 발생하면 함수를 실행합니다." 주요 차이점은 모든 속성 및 특정 속성뿐입니다.
누군가가 그러한 방법을 만들 수 있습니까? 아니면 그러한 방법이 이미 존재한다는 것을 알고 있다면 링크 할 수 있습니까? 모든 브라우저에서 작동하도록하는 것이 유용 할 것입니다 (IE9를 준수하는 경우 IE 빼기 IE8)
편집 : 내가 원하는 것을 보여줍니다.
var DiscreteLine = function (leftBound, length){
this.positive = [];
this.negative = [];
this.length = length;
this.leftBound = leftBound;
this.rightBound = leftBound + length
if (this.leftBound < 0){
this.negative.length = (leftBound * -1) + 1;
} else {
this.negative.length = 0;
}
if (this.rightBound >= 0){
this.positive.length = rightBound + 1;
} else {
this.positive.length = 0;
}
this.watchObject = new ObjectWatcher(handler(prop, oldval, newval){ /* some stuff */ });
}
그런 다음, 누군가가 그랬다면, 예를 들어, 다음과 같은 경우 :
theLine = new DiscreteLine(-2, 4);
theLine[-8] = 10;
핸들러는 인수 ("-8"정의되지 않은, 10)와, 부를 것이다. (결국 Array가 자동으로 length 속성을 업데이트하는 방식과 같이 스크립트가 leftBound 및 length 속성을 자동으로 다시 계산한다는 것입니다.)
그 방법을 사용하여 개체의 모든 속성에 대한 감시자를 만드는 방법을 알 수 없습니다. 또한 Firefox 4.0에서 지원합니다. 그것은 속성의 주요 측면 (어쨌든 나에게 유용)을 변경할 수는 있지만 오브젝트를 보지는 않습니다. – Havvy