1

HTMLElements のようにイベントをディスパッチできるオブジェクトを作成し、それを新しいクラスのプロトタイプとして使用することは可能ですか?

EventDispatcher クラスを作成してそれを作成できることはわかっていますが、既にそれを行っているネイティブ関数 (addEventListener、removeEventListener、dispatchEvent) を使用するよりも遅いと思います。

ケース 1:

var obj = new EventDispatcher();
obj.addEventListener( 'someevent', listener ); // obj can receive listener to a event

obj.dispatchEvent( myEvent ); // CustomEvent being dispatched

ケース 2:

var MyNewClass = function(){};
// MyNewClass now can dispatch events in their instances...
MyNewClass.prototype = Object.create( EventDispatcher.prototype );

var obj2 = new MyNewClass();
obj2.addEventListener( 'someevent', listener ); // works!
4

1 に答える 1

2

はい、ネイティブ (DOM) イベントを使用できます。

使用するdocument.createEvent()

element.dispatchEvent(my_event);

于 2013-03-27T16:00:44.083 に答える