忽略了一个事实,这是由许多框架实现..什么是更好的方法,以原型为多种类型的
什么是原型多个对象类型的最佳途径。
例如,我应该写:
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 –
最好的地方可能就是这样。你能添加一些上下文吗?你遇到什么问题导致你问这个问题? –