約60個のグローバル変数を含むかなり大きなスクリプトがあります。名前空間パターンを使用してスクリプトをカプセル化し、1つのオブジェクトを参照するグローバル変数を1つだけ持つことを考えています。
このパターンはベストプラクティスと見なされていますが、別の方法も考えています。つまり、グローバル変数をDOM内、非表示のdivに格納し、。を使用してそれらにアクセスすること$('#MyGlobalVar1').text()
です。これは良い考えですか?
あなたの提案をありがとう。
約60個のグローバル変数を含むかなり大きなスクリプトがあります。名前空間パターンを使用してスクリプトをカプセル化し、1つのオブジェクトを参照するグローバル変数を1つだけ持つことを考えています。
このパターンはベストプラクティスと見なされていますが、別の方法も考えています。つまり、グローバル変数をDOM内、非表示のdivに格納し、。を使用してそれらにアクセスすること$('#MyGlobalVar1').text()
です。これは良い考えですか?
あなたの提案をありがとう。
いいえ、これは良い考えではありません。
非セマンティックデータでDOMを汚染し、効率も低下します。これは、グローバルJS名前空間を汚染するよりもさらに悪いことであり、さらに悪いことに、文字列を格納することしかできません。
名前空間オブジェクトを使用してデータを保持および参照することをお勧めしますが、コードの周囲に外部の自己呼び出し関数を配置するだけで、グローバルオブジェクトが壊れるのを防ぐことができます。
だからあなたはから行きます
var global1 = true,
global2 = true;
の中へ
(function() {
var global1 = true,
global2 = true;
// rest of all app logic
}());
それ以外に、jQueryを使用しているので、jQuerys.data()
メソッドを使用することもできます。特定のノードのデータを参照するように設計されていますが、ECMAscriptオブジェクトにも内部的に保存されています。