객체지향 프로그래밍 언어에서는 this 키워드에 매우 익숙합니다. 예를 들어 C, C#, Java 모두 이 키워드를 제공합니다. 학습 초기에는 어렵지만 일단 이해하고 나면 사용하기가 매우 편리하고 의미가 있습니다. JavaScript도 이 키워드를 제공하지만 기존 OO 언어보다 사용하기가 훨씬 더 "혼란"합니다.
JavaScript에서 이것을 사용하는 다양한 방법에 대해 혼란스러운 점을 살펴보겠습니다.
1. HTML 요소 이벤트 속성에 이 키워드 인라인을 사용합니다.
여기서 사용하는 가장 일반적인 방법은 javascirpt: EventHandler(this) 형식입니다. 그러나 실제로 여기에서 합법적인 JavaScript 문을 작성할 수 있습니다. 여기에서 클래스를 정의할 수 있습니다(그러나 이는 내부 클래스가 됩니다). 여기서 원칙은 스크립트 엔진이 div 인스턴스 개체의 익명 멤버 메서드를 생성하고 onclick이 이 메서드를 가리킨다는 것입니다.
2. DOM을 사용하는 이벤트 처리 함수에서 this 키워드를 사용하세요.
division 요소
<script> var div = document .getElementById ('elmtDiv'); <BR> div.attachEvent('onclick', EventHandler); <BR><br> function EventHandler() <br> { <BR> // 여기에서 사용하세요 <BR> } <BR> </script>
이때 EventHandler() 메소드의 this 키워드는 해당 객체가 IE의 윈도우 객체임을 나타냅니다. 이는 EventHandler가 단지 일반 함수이기 때문입니다. attachmentEvent 이후 스크립트 엔진의 호출은 div 개체 자체와 관련이 없습니다. 동시에 null과 동일한 EventHandler의 호출자 속성을 볼 수 있습니다. 이 메소드에서 div 객체 참조를 얻으려면 this.event.srcElement를 사용해야 합니다.
3. DHTML을 사용하여 이벤트 처리 함수에서 다음 키워드를 사용합니다.
<script> <BR> var div = document.getElementById('elmtDiv') <BR> div.onclick = function() <BR> { <BR> // 여기에서 사용하세요 <BR> }; </script>
여기서 this 키워드가 나타내는 내용은 div 요소 개체 인스턴스입니다. 스크립트에서 DHTML을 사용하여 div.onclick에 EventHandler 메서드를 직접 할당하는 것은 div 객체 인스턴스. 이 방법과 첫 번째 방법의 차이점은 첫 번째 방법은 HTML 방법을 사용하고 여기서는 DHTML 방법입니다. 후자의 스크립트 구문 분석 엔진은 더 이상 익명 메서드를 생성하지 않습니다.
4. 클래스 정의에 다음 키워드를 사용하세요.
5. 스크립트 엔진의 내부 개체에 대한 프로토타입 메서드에 this 키워드를 추가합니다.