문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
javascript:기초 [2011/11/07 21:49] kwon37xi [Class 없이 객체 생성하고 메소드 추가하기] |
javascript:기초 [2011/11/14 16:31] kwon37xi |
||
---|---|---|---|
줄 89: | 줄 89: | ||
name: " | name: " | ||
}; | }; | ||
+ | console.log(jane.describe()); | ||
+ | console.log(tarzan.describe()); | ||
</ | </ | ||
+ | ==== Class 객체의 method를 Event Handler Function으로 등록하기 ==== | ||
+ | Class 객체의 method는 원칙적으로 this가 객체를 가리켜야 하지만, **이벤트 핸들러로 등록되면 이벤트를 발생시킨 객체를 this로 가지게 되는 현상이 발생한다.** | ||
+ | 이 문제를 해결하려면 [[http:// | ||
+ | |||
+ | <code javascript> | ||
+ | ClickCounter = function(buttonId) { | ||
+ | this._clickCount = 0; | ||
+ | var that = this; | ||
+ | document.getElementById(buttonId).onclick = function(){ that.buttonClicked() }; | ||
+ | } | ||
+ | |||
+ | ClickCounter.prototype = { | ||
+ | buttonClicked: | ||
+ | this._clickCount++; | ||
+ | alert(' | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 핵심은 이벤트 핸들러를 등록할 때 **this를 that으로 매핑하고, | ||