분명히 이것은 IE와 관련이없는 주제입니다 (IE 제외). 그럼에도 불구하고 관심있는 학생들은 ECMAScript5 표준에서 게터와 세터의 구현에 대해 배워야합니다. 객체에서 가장 일반적으로 사용되는 속성 또는 방법의 작동은 읽기 (참조) 및 쓰기입니다. 예를 들어, 읽기 작업 인 O.Get, O.Set = 1은 쓰기 작업입니다. 실제로, IE를 제외한 최신 주류 브라우저를 구현할 때, 모든 객체의 핵심 값은 "액세서 속성"이라고하는 getter 및 setter 메소드로 대체 될 수 있습니다.
Getter가 값을 쿼리 할 책임이 있고 매개 변수를 사용하지 않으며 Setter가 키 값을 설정하는 데 책임이 있다는 것은 의심의 여지가 없습니다. 값은 매개 변수 형태로 전달됩니다. 기능 본문에서 모든 반환은 유효하지 않습니다. 일반적인 속성과 달리 얻거나 세트 만 선언하면 메모리 속성이 읽거나 쓰여질 수 없습니다. Getter 방법 만 있으면 읽습니다. 마찬가지로, 세터 메소드 만 있으면 읽은 내용은 항상 정의되지 않습니다. 객체 메모리 속성을 선언하는 방법은 무엇입니까? 가장 빠른 방법은 객체 리터럴의 구문을 사용하여 쓰는 것입니다. 다음 코드를 참조하십시오.
코드 사본은 다음과 같습니다.
var oo = {
이름 : 'Xianxin',
섹스 받기 () {
반환 '남자';
}
};
// Xianxin이 외부 세계가 사람이라는 사실을 바꾸기를 원하지 않기 때문에 이것은 허용되지 않습니다. 따라서 읽기 전용 기능 만성에 맞게 설정됩니다.
oo.sex = '여자';
Console.log (oo.sex); // 결과는 여전히 사람입니다
흥미롭게도, 이것은 우리의 이전 이해, 즉 메소드를 정의 할 때 기능 키워드를 사용하지 않습니다. 실제로, 여기에서 얻거나 설정하면, 당신은 그것을 두 가지 다른 상태의 함수로 이해할 수 있습니다 : 포괄적 측면 (쓰기), 안전한면 (읽기), 전체가 다른 형태로 분리 될 때, 우리는 더 이상 표현 측면에서 전통을 따를 필요가 없으므로 콜론을 사용하여 열쇠와 값을 분리하지 않을 수 있음을 의미합니다. 그런 다음 위의 예를 계속하십시오. 메모리 속성을 기반으로 읽고 쓰는 방법은 무엇입니까? 어쩌면 다음 단락에서 답을 줄 것입니다.
코드 사본은 다음과 같습니다.
var oo = {
이름 : 'Xianxin',
섹스 받기 () {
if (this.sexx) {
reply.sexx;
}또 다른{
반환 '남자';
}
}, set sex (val) {
this.sexx = val;
}
};
// 오, 그는 사람들조차도 자신의 성별을 바꾸어 받아 들여서 허용합니다.
oo.sex = '여자';
Console.log (oo.sex); // 결과 여성
어쩌면 우리는 GET을 완전히 무시하고 설정하고 직접 성별 방법에 두 개의 권한을 갖도록 허용 할 수 있기 때문에 이것이 불필요하다고 생각할 것입니다. 그러나 우리가 별도로 시작하고 설정 한 이유는보다 엄격한 해석 인 JavaScript 객체에서 ecmascript5의 키 가치 작동을보다 명확하게 이해하기 때문입니다. 물론, IE에 의해 오염 된 중국에서는 새로운 주류 기술이 항상 벗어난 것처럼 보입니다. 실제 프로젝트 개발에서 Get and Set을 사용할 수는 없지만 누가 미래에 그렇게하지 않을 것이라고 보장 할 수 있습니다 ...