Javascript の変数スコープについて質問があります。さまざまなタイミングで読み込まれる Web ページに一連のスクリプトがあります。たとえば、それらすべてにアクセスできるようにするには、MyVar というグローバル オブジェクトが必要です。再定義は避けたいのですが、最初のスクリプトでどこかで定義する必要があると思います。私の質問はvar MyVar = MyVar || {}
、ソリューションを使用していますか?
ありがとう
/**
* Script 1
*/
var MyVar = MyVar || {};
MyVar.config = {
x : 2,
y : 3
};
/**
* Script 2
*/
//is this correct?
var MyVar = MyVar || {};
//to which MyVar am I assigning the apple property?
MyVar.apple = 'red';
アップデート
これまでのところ素晴らしい答えです。みんなありがとう。
最後の部分ですが、2 回目の var ステートメントは何をvar MyVar = MyVar || {};
しているのでしょうか? MyVar
既存の値が割り当てられているというグローバルスコープに新しい変数を作成していMyVar
ますか?
他の投稿者は、私がこれらのスクリプトを<script>
タグで同期的にロードしていると仮定するのが正しいですが、分業のためにスクリプトを作成し、いつ、どのようにロードするかを制御しないため、MyVar
オブジェクトを作成/利用するための絶対確実な方法が必要です。
ありがとう