はvar
キーワードを使用して、ファイル・スコープの変数を宣言し、次のコードを考える:配列宣言を使用して 'var'で宣言されたファイルスコープ変数にアクセスするにはどうすればよいですか?
// File a.js
var foo = "Hello, foo!"; // I know I can remove 'var', but that's not what I'm asking
logVar("foo");
function logVar(name) {
var text = global[name]; // 'global' does not work to access 'foo'!!!
console.log(text);
}
私は(配列表記を使用して、ファイル・スコープの変数
foo
にアクセスする方法を知っていただきたいと思います
すなわち、テキスト与えられました変数名 - global["foo"]
のようなものですが、これは動作しません)。
私はこれを検索するのに約1時間を費やしました。すなわちhere,here、またはhereです。ファイルのスコープでの構文(ではなく)を使用すると、変数はglobal
スコープには表示されず、Nodeがファイルをラップするために作成するファイルのクロージャの範囲に表示されます。
今、変数宣言からvar
を削除することができます。しかし、それは私が求めていることではありません。
var
で宣言されたファイルスコープ変数に、変数名を表すテキスト文字列を指定して配列表記を使用してアクセスできるかどうかを知りたいと思います。
これはNodeで可能ですか?もしそうなら、どうですか?
私はそれができないと言いたいと思います。グローバルスコープのレキシカル環境がバインディング(グローバルスコープは非常に特殊なものです)として利用できるようになっているためですが、これはモジュールスコープで利用できるとは限りません。 – MinusFour