EventTarget: EventTarget() ã³ã³ã¹ãã©ã¯ã¿ã¼
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2020å¹´9æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
ã¡ã¢: ãã®æ©è½ã¯ã¦ã§ãã¯ã¼ã«ã¼å ã§å©ç¨å¯è½ã§ãã
EventTarget() ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãæ°ãã EventTarget ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã使ãã¾ãã
ã¡ã¢:
ãã®ã³ã³ã¹ãã©ã¯ã¿ã¼ãæç¤ºçã«å¼ã³åºããã¨ã¯ãé常ã«ã¾ãã§ããã»ã¨ãã©ã®å ´åããã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ EventTarget ããæ´¾çãããªãã¸ã§ã¯ãã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã®ä¸ã§ã super ãã¼ã¯ã¼ãã«ãã£ã¦ä½¿ç¨ããã¾ãã
æ§æ
new EventTarget()
弿°
ãªãã
è¿å¤
EventTarget ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã
ä¾
>ã«ã¦ã³ã¿ã¼ã®å®è£
ãã®ä¾ã§ã¯ã increment() ã¡ã½ãã㨠decrement() ã¡ã½ãããæã¤ Counter ã¯ã©ã¹ãå®è£
ãã¾ãããããã®ã¡ã½ãããå¼ã³åºãããã¨ãã«ã¹ã¿ã ã¤ãã³ã "valuechange" ãçºçãã¾ãã
HTML
<button id="dec" aria-label="Decrement">-</button>
<span id="currentValue">0</span>
<button id="inc" aria-label="Increment">+</button>
JavaScript
class Counter extends EventTarget {
constructor(initialValue = 0) {
super();
this.value = initialValue;
}
#emitChangeEvent() {
this.dispatchEvent(new CustomEvent("valuechange", { detail: this.value }));
}
increment() {
this.value++;
this.#emitChangeEvent();
}
decrement() {
this.value--;
this.#emitChangeEvent();
}
}
const initialValue = 0;
const counter = new Counter(initialValue);
document.querySelector("#currentValue").innerText = initialValue;
counter.addEventListener("valuechange", (event) => {
document.querySelector("#currentValue").innerText = event.detail;
});
document.querySelector("#inc").addEventListener("click", () => {
counter.increment();
});
document.querySelector("#dec").addEventListener("click", () => {
counter.decrement();
});
çµæ
仿§æ¸
| 仿§æ¸ |
|---|
| DOM > # ref-for-dom-eventtarget-eventtargetâ > |