0

addEventListener의 seconde 인수는 handleEvent 메서드를 구현하는 함수 또는 객체 일 수 있다고 설명하는 (link) 문서를 읽었습니다.addEventListener에서 handleEvent 속성과 기존 콜백 함수를 사용하여 객체를 전달하는 것의 비교

이 문서의 섹션이 더있을 때까지 기다려주십시오. handleEvent을 사용하면 이벤트 처리기를 제거한 다음 다시 첨부하지 않아도됩니다. 그러나 이것이 이것이 반복적으로 '추가'와 '제거'보다 나은지 궁금합니다. 깔끔한 코드, 성능 또는 어떤면에서?

감사합니다.

var listener = 
    { 
    handleEvent: function (evt) { 

     this === listener; // true 

     // and evt === classic event object 
    } 
}; 


document.addEventListener("click", listener, false); 

는 다음과 같은 장점 갖는다 : 수신기와 같은 객체를 사용

답변

1

  • 그것은 구현에서 계면 분리를 이것은 DOM은
  • 개체에 순환 참조를 방지 할 수
  • 이 이벤트 객체에서 this를 분리
기존의 API의 요구 사항을 설명하기 위해 요구하지 않는 6,

사양 저자는, 단 하나의 수술을 콜백 인터페이스를 정의해서는 안된다. 대신 콜백 함수를 사용해야합니다.

콜백 인터페이스로서의 EventListener의 정의는 주어진 속성 (이 경우 "handleEvent")을 가진 사용자 객체가 인터페이스를 구현하는 것으로 간주되어야하는 기존 API의 예입니다. 새로운 API를 들면, 그 어떤 경우 (결합 ECMA 스크립트 언어) 기능만을 객체 있도록 콜백 함수를 사용하여 호환성 문제는 없다.

참조