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!