我試圖延長Node.addEventListener
方法,所以我可以做一些活動的管理,如:擴展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
而不是返回子句,它將導致無限循環。所以我在想如果有什麼辦法可以調用super
方法呢?
在此先感謝
在繼續之前,請閱讀[擴展DOM有什麼問題](http://perfectionkills.com/whats-wrong-with-extending-the-dom)。 –
感謝Felix的提示,其實我知道這篇文章,但是因爲這只是在非常封閉和私密的環境下運行,所以我認爲它對我的情況不會有問題。但再次感謝您向我展示這一點。 :) – zanona
好吧:)文章還提到,這可能是在封閉的環境中這樣做,只是想確保你知道這一點;) –