2011-09-14 9 views

答えて

1

varを使用すると、メソッドで定義された変数はそのメソッドでのみ使用できます。あなたは

myVar = 1;

をすればmyVarには、グローバルになります。

ノードは他のjavascriptと似ています。ノードは、あなたが

global.SOME_CONSTANT = 'A Constant'

のようなものを行い、その後、どこでもあなたのコード/モジュールで

SOME_CONSTANT

のようなものを使用することができますので、global変数を定義しません。

ノードが非同期であるため、多くのコールバックが定義されます。すなわち、あなたはそれが行われたときに渡された関数がsomeMethodによって呼び出されます

someModule.someMethod(opts, function(data){ 
    // callback code in here 
}); 

の多くを行います。関数内でsomeModule.someMethodを呼び出したとしましょう。その外部関数で変数を定義した場合、コードは次のようになります

var x = []; 
someModule.someMethod(opts, function(data){ 
    // x is available in this callback because of closures, so you can do 
    x.push(data); 
}); 

この変数は、クロージャのためにコールバックで使用できます。私はあなたがjavascriptで閉鎖についての読書をいくつか過ごすことをお勧めします。

2

name変数は、その関数が作成された関数、またはその関数が組み込まれた内の関数でのみ使用できます。

これは、関数が渡される場所に関係なく適用されます。 元の可変環境はどこにでも持ち運べるので、どこでもコードの外にはnameにアクセスできません。

1

モジュール内でのみ使用でき、定義されている関数内でのみ使用できます。 スコープを定義する方法はありません。すべてのモジュールには独自のグローバルスコープがあります。

閉鎖についてお読みください;

関連する問題