2012-03-20 3 views
0

は、私が機能を持っていると仮定しますか?どのように私はより良いオブジェクト指向javascript関数でグローバル変数を定義することができます

+0

をチェックすることをお勧めいたします。 'window'オブジェクトにアクセスする必要はありません。 –

+0

はvarで定義していません。どのスコープで作成しても、それをグローバルに作成します。 – thescientist

+0

@thescientist:定義されている場所が不明なので、難読化したくないコードは望ましくありません。 – vol7ron

答えて

1

グローバルであれば、関数の外で定義するほうがよいでしょう。これは、グローバルであれば、任意の/すべての関数でアクセスできるようにするためです。

JavaScriptは関数の外で定義すると、関数の中で宣言されます。関数内で呼び出された場合、関数が呼び出されると宣言されます。

0

グローバル変数を定義することはできますが、上記の場合はすべて問題ありません。

しかし、大きな違いは、2番目のケースを除いて、その配列

を持つように関数を呼び出す必要があるということです。

0

グローバル変数を定義しようとすると(多少の疑問がありますが、グローバル変数も名前空間にする必要があります)、それを追跡するのが困難な場所に置かないでください。トップレベルにして、インデントしないようにしてください。見つけやすい

1

一般的な変数は一般的に悪い考えです。あなたができることは、効果を最小限に抑えることです。単一のグローバル変数を作成し、この変数は、例えば、ヨールアプリケーションコンテナになります:


var APP = {}; 

APP.my_array = []; 

私はただの関数スコープの外にそれを宣言し、あなたはすべてのセットでしょうJavaScript: The Good Parts

+1

グッドパーツは優れたリソースです。 Crockfordだけでなく、すべてのもの。 – thescientist

関連する問題