# Element, Node, EventTarget

EventTarget <= Node <= Element

위 문장(?)은 EventTarget는 Node의 부모인터페이스이고, Node는 Element의 부모인터페이스임을 나타낸다.

# Element

Element는 Document안의 모든 객체가 상속하는 제일 범용적인 기반 클래스이다.

공통적인 프로퍼티(메소드)들이 있다.

# Node

Node는 다양한 DOM 타입들이 상속하는 인터페이스이다.

대표적으로 Document, Element, CharacterData(문자를 포함하는 Node객체 - Text, Comment(주석)) 등이 있다.

# EventTarget

EventTarget은 이벤트를 받고 해당 listener를 가질 수 있는 객체에 의해 구현된 인터페이스이다.

Element, document 및 window는 가장 흔한 이벤트 대상(target)이지만,

예를 들어 XMLHttpRequest, AudioNode, AudioContext 및 나머지 다른 객체들도 이벤트 대상이 될 수 있습니다.

methods

EventTarget.addEventListener()
// EventTarget에 특정 이벤트 유형의 이벤트 처리기를 등록.
EventTarget.removeEventListener()
// EventTarget에서 이벤트 수신기를 제거.
EventTarget.dispatchEvent()
// 이 EventTarget에 이벤트를 디스패치.

ref: https://developer.mozilla.org/ko/docs/Web/API/EventTarget