2011-09-21 2 views
2

에 액세스하는 방법 나는 다음과 같은 예를 들어 두 가지 질문이 있습니다하여 addEventListener : 이벤트

function doIt(){ 
    this.attribute = someValue; // Works as expected 
    alert(event.which); // Doesn't work 
} 
element.addEventListener("click",doIt,false); 

질문 1 : this 함수에 바인딩하지만 event이 아닌 이유는 무엇입니까?
질문 2 :이 작업을 수행하는 적절한 방법은 무엇입니까?

답변

4

this은 JavaScript 용으로 내장되어 있습니다. 항상 접근 할 수 있습니다. event은 그렇지 않습니다. 현재 메서드가 지원하는 경우에만 사용할 수 있습니다.

당신은

function doIt(event) 

this은 무엇인가 뭔가를해야 할 필요가? - http://howtonode.org/what-is-this

+0

'이'가 내장되어 있음을 알고 있지만 '이'가 요소를 어떻게 참조 할 수 있는지 이해하지 못합니다. 함수 자체를 참조해야한다고 생각했습니다. 미안하지만, 바인딩은 내가 뭔가를하는 것보다 더 좋은 방법이있을 것 같아서 addEventListener ("click", function() {doit (event);} m을 잡으려고 애쓰는 중입니다 ... – Gary

+0

'this'는 현재의'object'를 참조하고, 당신의 메소드는 객체가 아니며,'method'입니다. 따라서, 선택된 유일한 요소가 객체입니다. –

+0

'this'를 설명하는 문서는 호출자에서 함수로 전달됩니다. 아래에는 프로토 타입이 있으므로 코드 작동 방식을 확인할 수 있습니다. - https://developer.mozilla.org/en/DOM/element.addEventListener#section_8 – mrtsherman