Node.addEventListener
メソッドを拡張して、次のようなイベント管理を実行できるようにしようとしています。
Node.prototype.on = function (type, listener, useCapture) {
'use strict';
var i, evt;
this.events = this.events || [];
for (i = 0; i < this.events.length; i += 1) {
evt = this.events[i];
if (this === evt[0] && type === evt[1]) {
this.removeEventListener(type, evt[2], evt[3]);
this.events.splice(i, 1);
}
}
this.events.push([this, type, listener, useCapture]);
return this.addEventListener(type, listener, useCapture);
};
ただし、この場合、名前を付けるのではなくon
、同じ名前を付けたいaddEventListener
ので、どの JavaScript でも動作することを保証できます。
つまり、ここでのポイントはaddEventListener
、return 句で代わりに on という名前を関数に付けると、無限ループが発生するということです。super
代わりにメソッドを呼び出させる方法があるかどうか考えていましたか?
前もって感謝します