1

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/

4

1 に答える 1

1

競合を引き起こす可能性があるため、通常は「悪い」と見なされます。例として、ある時点で、Ext JS とプロトタイプ JS の両方が関数プロトタイプに defer メソッドを追加したため、次のように呼び出すことができました。

foo.defer();

defer()問題は、各ライブラリには延期する異なる引数があったため、両方のライブラリを含めると、ライブラリが期待していた引数で両方のライブラリが呼び出されるため、多くのことが壊れてしまうことでした。

インポートするライブラリに注意を払っている限り、同じことが起こる可能性があります。小規模な個人プロジェクトの場合は、おそらく問題ありません。

于 2013-08-02T05:41:54.983 に答える