イベントのEventTargetの設定方法。イベントのイベントターゲットの設定方法
var myObj = {foo: 'bar'};
var event = new Event('eventName');
event.target = myObj;
は、次のエラーになります:
Uncaught TypeError: Cannot set property target of #<Event> which has only a getter
編集:
が、私は私のクラスはtarget
になりますこのような何かを、書きたい:
class MyClass {
constructor() {
this.listeners = {};
}
addEventListener(type, callback) {
if (!(type in this.listeners)) {
this.listeners[type] = [];
}
this.listeners[type].push(callback);
}
removeEventListener() {
if (!(type in this.listeners)) {
return;
}
var stack = this.listeners[type];
for (var i = 0, l = stack.length; i < l; i++) {
if (stack[i] === callback) {
stack.splice(i, 1);
return this.removeEventListener(type, callback);
}
}
}
dispatchEvent(event) {
if (!(event.type in this.listeners)) {
return;
}
var stack = this.listeners[event.type];
event.target = this;
for (var i = 0, l = stack.length; i < l; i++) {
stack[i].call(this, event);
}
}
}
let myInstance = new MyClass();
let event = new Event('eventName');
myInstance.dispatchEvent();
を
詳細情報:https://developer.mozilla.org/en/docs/Web/API/EventTarget
私は誤解を招くかもしれませんが、通常は、イベントの発生/トリガーに使用された要素としてブラウザによって自動的に 'EventTarget'が設定されます。あなたは何をしようとしていますか?あなたの質問の限られた情報から、あなたが 'EventTarget.addEventListener()'を使っているべきだと感じていますが、私は今のところあなたの意図を非常によく確信しています。 –