0

複数のjsファイルがあり、それらを大きなファイルに結合する必要があります。

ただし、これらのファイルは機能がよく知られているため、同じ名前の変数が多数含まれています。したがって、ファイルに同じ名前の複数の変数を組み込むことができる名前空間やスコープのようなメカニズムがあるかどうか疑問に思っています。

編集

そして追加の質問:

Chrome コンソールから「アドホック」関数の変数にアクセスするにはどうすればよいですか?

通常、Chrome コンソールでこれを行うことができます。

[js]
var car = "Model T";

[Chrome Console]
>> car
<< "Model T"
>> car = "Model S";
>> car
<< "Model S"

しかし今、さまざまなスコープで変数にアクセスするにはどうすればよいでしょうか?

[js]
//lib1
(function(){
var car = "Model T";
})();
//lib2
(function(){
var car = "Model S";
})();

@ user2695276 のソリューションでは、答えは簡単だと思います。だから私の質問はアドホック機能です。

4

2 に答える 2

2

宣言で「var」が前にない場合、JS の変数はデフォルトでグローバルであり、グローバル名前空間に配置されます。これにより、特に複数の人がコードを書く場合に名前の衝突が発生する可能性があります (あなたのケースのようです)。

名前空間: アプリの最上位の名前空間として機能する 1 つの大きなグローバル変数を持つことができます。例えば:

App = {
App.views = {} //encapsulates all view objects
App.views.view1 = {} // so on
}

この単一の変数は、まず第一に、より少ないグローバル (この場合は技術的に 1 つ) を保持します。アプリのデータはすべて安全にラップされ、最も重要なことは、開発者向けに確立された共通のパターンがあることです。どこで「コレクション」を探し、どこで新しいコレクションを作成するかは誰もが知っています。

この名前空間は、大きなプロジェクトで大いに役立ちます。あなたのシナリオに適応できることを願っています。

編集: 後付けとして、アーキテクチャの変更が必要になる場合があります。あなたがどれだけの時間的制約を受けているかわかりません。しかし、長期的には、このようなものはメンテナンスを容易にします。

編集:追加の質問については、Chrome コンソールでローカル変数を表示する唯一の方法は、それらをスコープに入れることです。「Chrome 開発ツールでのブレークポイントのデバッグ」を探します。直接的な代替手段の 1 つは、制御したい行の上に「debugger」を記述して、実行時に一時停止することです。そこから、変数のランタイム値を確認できます (マウスをホバーするか、通常のようにコンソールに出力します)。デバッグが完了したら、忘れずに「デバッガー」を削除してください:)

于 2013-08-19T07:43:46.147 に答える