JavaScript中的Object.prototype
我有一些JavaScript代码,它定义了一个函数JavaScript中的Object.prototype,javascript,internet-explorer,prototype,Javascript,Internet Explorer,Prototype,我有一些JavaScript代码,它定义了一个函数getElementsByAttribute,如下所示: Object.prototype.getElementsByAttribute = function(attr) { var children = this.all || this.getElementsByTagName('*'), ret = [], i, c; for( i=0; i<children.length; i++) {
getElementsByAttribute
,如下所示:
Object.prototype.getElementsByAttribute = function(attr) {
var children = this.all || this.getElementsByTagName('*'),
ret = [], i, c;
for( i=0; i<children.length; i++) {
c = children[i].getAttribute(attr);
if( typeof c == "string" && c != "")
ret.push(children[i]);
}
return ret;
}
Object.prototype.getElementsByAttribute=函数(attr){
var children=this.all | | this.getElementsByTagName('*'),
ret=[],i,c;
for(i=0;iIE-DOM元素不是普通的Javascript对象,也不像您期望的那样继承原型
向对象添加内容。原型确实是一个坏主意。它将添加到每个对象,我保证这会导致意外行为
只需定义您的函数,并动态地将其修饰到您需要的任何对象上。谢谢-幸好我不经常使用这些东西,而且已经有了回退!但他并没有试图添加到DOM元素的原型中,他正在添加到对象的原型中,完全不同。@torazaburo:是的,但他希望DOM元素能够被我使用nheritObject.prototype
。他们没有。好吧,将其重新定义为一个普通函数。谢谢:)@Kolink,建议不要将其重新定义为一个普通函数,尽管这是一个合理的做法,而是显式地将其添加到您将调用它的对象中。