Simplify EventTargetMixin
This commit is contained in:
parent
cffb42ee8f
commit
11ef53544f
|
@ -8,13 +8,10 @@
|
||||||
|
|
||||||
export default class EventTargetMixin {
|
export default class EventTargetMixin {
|
||||||
constructor() {
|
constructor() {
|
||||||
this._listeners = null;
|
this._listeners = new Map();
|
||||||
}
|
}
|
||||||
|
|
||||||
addEventListener(type, callback) {
|
addEventListener(type, callback) {
|
||||||
if (!this._listeners) {
|
|
||||||
this._listeners = new Map();
|
|
||||||
}
|
|
||||||
if (!this._listeners.has(type)) {
|
if (!this._listeners.has(type)) {
|
||||||
this._listeners.set(type, new Set());
|
this._listeners.set(type, new Set());
|
||||||
}
|
}
|
||||||
|
@ -22,19 +19,17 @@ export default class EventTargetMixin {
|
||||||
}
|
}
|
||||||
|
|
||||||
removeEventListener(type, callback) {
|
removeEventListener(type, callback) {
|
||||||
if (!this._listeners || !this._listeners.has(type)) {
|
if (this._listeners.has(type)) {
|
||||||
return;
|
this._listeners.get(type).delete(callback);
|
||||||
}
|
}
|
||||||
this._listeners.get(type).delete(callback);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dispatchEvent(event) {
|
dispatchEvent(event) {
|
||||||
if (!this._listeners || !this._listeners.has(event.type)) {
|
if (!this._listeners.has(event.type)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
this._listeners.get(event.type).forEach((callback) => {
|
this._listeners.get(event.type)
|
||||||
callback.call(this, event);
|
.forEach(callback => callback.call(this, event), this);
|
||||||
}, this);
|
|
||||||
return !event.defaultPrevented;
|
return !event.defaultPrevented;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue