JavaScriptで「人工的な」イベントを渡す方法にはいくつかの答えがあります。私が理解しない何イベントはどのようにJavaScriptメソッドに渡されますか?
は、どこでも宣言しているように見えるdoes notのにもかかわらず、直接「イベント」変数を使用してアクセスできるように渡されない場合、イベントはメソッドとイベントに渡される方法です。
誰かがこれを説明することはできますか?事前ここ
JavaScriptで「人工的な」イベントを渡す方法にはいくつかの答えがあります。私が理解しない何イベントはどのようにJavaScriptメソッドに渡されますか?
は、どこでも宣言しているように見えるdoes notのにもかかわらず、直接「イベント」変数を使用してアクセスできるように渡されない場合、イベントはメソッドとイベントに渡される方法です。
誰かがこれを説明することはできますか?事前ここ
で
おかげで初歩的なイベントリスナーされます。次に例として、あなたはEventCaller
を作成することができます
class EventCaller {
constructor() {
this.listeners = [];
}
addListener(obj) {
if (obj.trigger) { this.listeners.push(obj); }
}
trigger(event, ..data) {
this.listeners.forEach((listener) => listener.trigger(event, ...data));
}
}
class EventListener {
constructor() { this.eventsListeningTo = []; }
listenTo(item) {
if (!item.addListener) { throw new Error('Cannot add listener error'); }
item.addListener(this);
}
trigger(event, ...data) {
if (this[`on${event}`]) {this[`on${event}`](...data)}
}
onFoo({bar, foo}) {
console.log(bar, foo);
}
}
:
const eventAgg = new EventCaller();
を次にいくつかのイベントリスナー
を作成const a = new EventListener();
const b = new EventListener();
次に、aとbは、eventAgg
イベントを待ち受けることができます。
a.listenTo(eventAgg); b.listenTo(eventAgg)。だから、
今、私は今a
とb
の両方が、彼らは両方ともその擬似イベントをリッスンしているので、lemons, 42
をログアウト慰めるます
eventAgg.trigger('Foo', {bar: 'lemons', foo: 42});
をトリガします。
これは単なる基本的なものです。 jqueryの、バックボーン、等角度のすべてのさまざまな方法でこれを実装する(私は確信している)、それはすべてのコールバック(またはそれ以降のコードでさえ約束)に降りてくる
あなたが何を言ってるのかの例を提供することはできますか? – dan08