1

約60個のグローバル変数を含むかなり大きなスクリプトがあります。名前空間パターンを使用してスクリプトをカプセル化し、1つのオブジェクトを参照するグローバル変数を1つだけ持つことを考えています。

このパターンはベストプラクティスと見なされていますが、別の方法も考えています。つまり、グローバル変数をDOM内、非表示のdivに格納し、。を使用してそれらにアクセスすること$('#MyGlobalVar1').text()です。これは良い考えですか?

あなたの提案をありがとう。

4

2 に答える 2

9

いいえ、これは良い考えではありません。

非セマンティックデータでDOMを汚染し、効率も低下します。これは、グローバルJS名前空間を汚染するよりもさらに悪いことであり、さらに悪いことに、文字列を格納することしかできません。

于 2012-04-26T13:28:17.257 に答える
3

名前空間オブジェクトを使用してデータを保持および参照することをお勧めしますが、コードの周囲に外部の自己呼び出し関数を配置するだけで、グローバルオブジェクトが壊れるのを防ぐことができます。

だからあなたはから行きます

var global1 = true,
    global2 = true;

の中へ

(function() {
    var global1 = true,
        global2 = true;

    // rest of all app logic
}());

それ以外に、jQueryを使用しているので、jQuerys.data()メソッドを使用することもできます。特定のノードのデータを参照するように設計されていますが、ECMAscriptオブジェクトにも内部的に保存されています。

于 2012-04-26T13:30:23.103 に答える