2012-10-04 2 views
3

누구나이 두 가지 접근 방식간에 차이가 있거나 둘 중 어느 것이 더 좋을지 생각하는 사람이 있습니까? javascript obj.onevent = 콜백 대 obj.addEventListener (이벤트, 콜백)

, 우리는이 말을

var x = new Worker('math.js'); 

1) 이벤트 핸들러

x.onmessage = function(ev){ //.... }; 

2

) 그 일을하는 또 다른 방법 바인딩의 한 가지 방법 :

x.addEventListener('message',function(){}); 

내가 한 차이를 알고를 다중 이벤트 리스너가 있으면 addEventListener가 유용 할 것입니다. 하지만 그 외에 어떤 이유가 있습니까?

+1

가능한 복제본 http://stackoverflow.com/questions/12627443/jquery-click-vs-onclick –

+1

@Vega 언급 한 질문 스레드는 HTML 인라인 메서드 대 JS 메서드에 대한 것입니다. – sbr

답변

1

또 다른 이유는 이벤트 처리기도 제거 할 수 있기 때문입니다. eventHandler 함수가 익명이 아닌 경우 (두 예제가 모두 그렇듯이) 나중에 이름으로 제거 할 수 있습니다.

는 여기를 참조하십시오 : http://jsfiddle.net/Cs3vL/

+0

유일한 이점은 이벤트 리스너를 추가/제거 할 수있는 것 같습니다. – sbr

+0

네가 말한대로, 그 기능은 하나의 요소에 여러 이벤트 처리기를 추가하는 것입니다. x.onmessage = ... 그것은 항상 (x)가 onmessage를위한 하나의 핸들러를 가지며, x.addEventListener를 반복적으로 호출하면 각 핸들러가 연결된 채로 남아 있음을 의미합니다. :) – enhzflep

1

또 다른 것은 "사실"과 "거짓"인수를 사용하면 캡처 또는 버블 링 단계에서 이벤트에 첨부 할 수 있습니다. .onmessage를 사용하면 선택의 여지가 없습니다.