将方法添加到归类为扩展DOM元素的元素

时间:2013-08-02 04:11:40

标签: javascript

我听说扩展DOM元素很糟糕......

这是否被归类为扩展DOM元素,如果是这样那么糟糕?

适用于IE7 +(已测试)。那为什么不呢?

var app = {};

app.get = function( selector ){
  return this.wrap( document.getElementById( selector ) );
};

app.wrap = function( element ) {
    for( var func in this ) {
        element[func] = this[ func ];
    }
    return element;
};

app.text = function( text ) {
     alert( text );   
}

app.get('test').text('Welcome');

演示:http://jsfiddle.net/gzb6C/2/

1 个答案:

答案 0 :(得分:1)

它通常被认为是“坏”,因为它可能会导致冲突。例如,在某个时间点,Ext JS&原型JS都为函数原型添加了一个延迟方法,因此你可以调用:

foo.defer();

问题是,每个库都有不同的推断参数,所以当你包含这两个库时,它会导致很多东西中断,因为两个库都会使用库所期望的参数调用defer()。 / p>

只要您关注导入的库,就会发生同样的 。如果它是一个小型的个人项目,它可能很好。