忽略了一個事實,這是由許多框架實現..什麼是更好的方法,以原型爲多種類型的
什麼是原型多個對象類型的最佳途徑。
例如,我應該寫:
Element.prototype.bind = function(eventType, fn) {
this.addEventListener(eventType, fn, false);
};
NodeList.prototype.bind = function(eventType, fn) {
for (var i = 0, l = this.length; i < l; i++) {
this[i].addEventListener(eventType, fn, false);
}
};
或
Object.prototype.bind = function(eventType, fn) {
if (this instanceof Element) {
this.addEventListener(eventType, fn, false);
} else if (this instanceof NodeList) {
for (var i = 0, l = this.length; i < l; i++) {
this[i].addEventListener(eventType, fn, false);
}
}
}
http://jsperf.com/prototype-methods好了,我發現,第一種方法是更好的表現,我會承擔它也提供了較少的衝突機會? – rlemon
是的,它也更整潔,更容易閱讀恕我直言...如果你想在多種類型相同的功能,那麼代碼是更清潔。想象一下這個Element的實例這個OtherType ||的實例...':O –
最好的地方可能就是這樣。你能添加一些上下文嗎?你遇到什麼問題導致你問這個問題? –