JavaScript中的Object.prototype

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++) {

我有一些JavaScript代码,它定义了一个函数
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元素能够被我使用nherit
Object.prototype
。他们没有。好吧,将其重新定义为一个普通函数。谢谢:)@Kolink,建议不要将其重新定义为一个普通函数,尽管这是一个合理的做法,而是显式地将其添加到您将调用它的对象中。