표준 Get 및 Set 접근자 구현
함수 필드 ( val){
this.value = val;
}
Field.prototype = {
get value(){
return this._value; 값(val){
this._value = val;
}
}
var field = new Field("test")
field.value="test2"; > //field.value는 이제 "test2"를 반환합니다.
다음 브라우저에서 정상적으로 작동할 수 있습니다.
일반적으로 사용되는 구현 방법은 다음과 같습니다.
var value = val;
this.getValue = function(){
return value;
this .setValue = function(val){
value = val;
}
var field = new Field("test")
field.setValue("test2")
field .getValue() // "test2" 반환
DOM 요소에 Get 및 Set 접근자 구현
코드 복사
HTMLElement .prototype.__defineSetter__("description", function (val) {
this.desc = val;
})
document.body.description = "아름다운 몸"; // document.body.description은 이제 "Beautiful body"를 반환합니다.
는 다음 브라우저에서 정상적으로 작동합니다.
Object.defineProperty를 통해 접근자 구현
앞으로는 객체를 확장하는 ECMAScript 표준 방법이 Object.defineProperty를 통해 구현될 예정인데, 이것이 IE8이 이 방법을 통해 get 및 set 접근자를 구현하는 이유입니다. 불행하게도 Microsoft는 여전히 매우 안목이 있는 것 같습니다. 현재는 IE8과 Chrome 5.0만 지원하며 다른 브라우저에서는 지원하지 않습니다. 또한 IE8은 DOM 요소만 지원하지만 향후 버전에서는 Chrome과 같은 일반 Javascript 개체를 지원할 예정입니다.
DOM 요소에 Get 및 Set 접근자 구현
코드 복사
set : function (val) {
this.desc = val;
}
});
document.body.description = "콘텐츠 컨테이너"
// document.body.description은 이제 "콘텐츠 컨테이너"를 반환합니다. >
다음 브라우저에서 정상적으로 작동할 수 있습니다:
일반 객체에 대한 Get 및 Set 접근자 구현
코드 복사
코드는 다음과 같습니다.
return this.loc;
},
set : function (val) {
this.loc = val
}
lost.location = "다른 island" ;
// loss.location은 이제 "Another island"를 반환합니다.
는 다음 브라우저에서 정상적으로 작동할 수 있습니다:
이 기사 요약
Microsoft의 IE는 Object.defineProperty만 지원하고 Get 및 Set 접근자를 완벽하게 구현하지는 않지만 IE, 특히 방금 출시된 IE9에서 사용하는 새로운 javascript 엔진은 HTML5 및 CSS3를 지원합니다. 하드웨어 가속 등. 언젠가는 모든 브라우저가 표준을 완전히 수용하고 완벽한 WEB 세상을 가져올 수 있을 것이라고 믿습니다.
참고:
1. JavaScript를 사용한 Getter 및 Setter
2.
JavaScript Getters 및 Setters
저자: Dream