Getter는 속성값을 가져오는 메소드이고, Setter는 속성값을 설정하는 메소드입니다. 사전 정의된 핵심 개체 또는 사용자 정의 개체에 대해 getter 및 setter 메서드를 정의하여 기존 개체에 새 속성을 추가할 수 있습니다.
Getter 또는 Setter 메서드를 정의하는 방법에는 두 가지가 있습니다.
1. 객체 초기화 중
을 정의합니다.
2. 객체가 정의된 후 Object의 __defineGetter__ 및 __defineSetter__ 메서드를 통해 정의를 추가합니다
Getter 및 Setter 메서드를 정의하기 위해 개체 초기화 프로세스를 사용할 때 해야 할 유일한 작업은 getter 메서드 앞에 "get"을 추가하고 setter 메서드 앞에 "set"을 추가하는 것입니다.
또 주목해야 할 점은 getter 메소드에는 매개변수가 없으며 setter 메소드에는 설정할 속성의 새 값인 하나의 매개변수가 있어야 한다는 것입니다.
예:
객체를 정의한 후 객체에 getter 또는 setter 메서드를 추가하려면 __defineGetter__ 및 __defineSetter__라는 두 가지 특수 메서드가 필요합니다. 이 두 함수에서는 첫 번째 매개변수가 문자열로 제공되는 getter 또는 setter의 이름이어야 하고, 두 번째 매개변수가 getter 또는 setter인 함수여야 합니다.
예를 들어 Date 개체에 연도 속성을 추가합니다.
주로 사용할 양식은 개인 프로그래밍 스타일에 따라 다릅니다. 첫 번째 양식은 간결하고 이해하기 쉽습니다. 그러나 객체가 정의된 후에 Getter 또는 Setter를 추가하려는 경우 또는 이 객체의 프로토타입이 사용자가 작성한 것이 아니거나 내장 객체인 경우에는 두 번째 방법을 사용해야 합니다.
다음은 Mozilla 브라우저에 innerText 속성을 추가하는 구현입니다.