DOM 요소를 만들고 모든 클릭 이벤트를 캡처해야하는 클래스가 있습니다.이벤트 핸들러에서`this`에 어떻게 접근 할 수 있습니까?
간체 코드 :
function myClass()
{
this.domElement = document.createElement("canvas");
this.domElement.addEventListener("click", this.handleClick);
}
myClass.prototype.handleClick = function(evt)
{
alert("Clicked!");
// How to modify `this` object?
}
가 지금은 handleClick()
에 myClass가 인스턴스의 일부 속성과 변수를 수정할. 그러나 this
은 물론 캔버스 객체를 참조합니다.
질문 : 이벤트 처리기에서 객체의 this
에 어떻게 액세스합니까?
3 가지 솔루션에 많은 감사를드립니다! 나는 최상의 솔루션 2 (좋고 간단하다)를 좋아한다. 하지만 원래의 '이'에 액세스해야하는 이유는 무엇입니까? DOM 요소에 대한 액세스 권한을 원할 때는'evt.target'을 사용합니다. – ComFreek
그것은 단지 기호와 코드 작성 방법의 문제입니다. 만약 당신이 2를 선호하고 합법적 인'evt.target'을 사용하십시오. 그러나 기존 코드를 수정하는 경우 다른 범위가 필요한 상황에 처하게 될 수 있으므로 3에서 더 효과적으로 작동 할 수 있습니다. – JAAulde
알겠습니다. 고마워요. 내 자신의 프레임 워크를 쓰고있어, 이것에 관한 어떤 문제도 없다. 답변 가능;) – ComFreek