0

グローバル変数をjavascriptで制限していると聞きました。

グローバル スコープで変数宣言する必要がある場合は、次のようにします。

var global1 = 0, global2 = 1, global3 = 2, global4 = 3;

ここには 4 つのグローバル変数があります。今、私はグローバル変数の数を制限することを考え、このようなことをしました

var globals = {
    global1 : 0,
    global2 : 1,
    global3 : 2,
    global4 : 3
}

変数グローバルを公開することで、他の他の方法も公開しているため、2番目の方法が優れているか、まったく同じかを知りたいと思いました。

4

2 に答える 2

1

あなたのアプローチは基本的に名前空間と呼ばれ、たとえばjQueryが変数と関数のすべてを使用jQueryおよび/または保持するなど、ほとんどの大きなライブラリによって行われます。$

グローバル変数の量を減らす主な理由は、異なるスクリプトが同じ変数名を使用する場合に起こりうる衝突を制限することです。

たとえば、スクリプト A は、cacheその内部目的のためにグローバル変数を定義します。2 番目の無関係なスクリプト B がその名前の別のグローバル変数を必要とする場合、おそらくスクリプト B がスクリプト A の変数を上書きするだけなので、問題が発生します。

変数 (および関数も) を、おそらく他のスクリプトで使用されていない名前で独自のグローバル名前空間に配置することにより、前述の発生する可能性を減らします。

于 2012-09-21T10:15:31.700 に答える
0

2 番目の方法は名前空間という名前で、より優れています。

var mynamespace = mynamespace || {};

次に、オブジェクトが存在する場合は取得するか、新しいオブジェクトを作成します。

于 2012-09-21T10:16:39.780 に答える