1

文字列を使用して nodejs の変数の内容を更新しようとしています。クライアント側の JavaScript では、これは window[variable] を使用して行われましたが、nodejs には「ウィンドウ」がないためです。「this」と「module」を使用してみましたが、取得するのはすべて空のオブジェクトです。助けが必要です ありがとう

コードスニペット:

var myVariable = 'Hello';
var exchangeVariable = 'myVariable';

this[exchangeVariable] = 'Hello World';

/*
    myVariable should equal to 'Hello World!'
*/

ありがとう!

4

2 に答える 2

13

あなたの質問に直接答える前に、いくつかの背景を以下に示します。

JavaScript では、オブジェクトは、ドット表記 ( someObj.property) によってインデックスを作成するか、例のようにインデックスを作成する( someObj["property"])ことができます。

ブラウザでwindowは、ブラウザがコードを評価するグローバル コンテキストです。ノードはと呼ばれる変数globalを使用します。

したがって、グローバルに定義した変数を参照する場合は、次のようにします。

> var someGlobalVar = "hi";
> var myLookupKey = "someGlobalVar";
> global[myLookupKey]
'hi'

ただし、これは一般的に非常に悪い習慣と見なされます(Node およびブラウザーでは)。これには無数の理由がありますが、私が焦点を当てているのは 1 つだけです。

ノードでは、モジュール (各required ファイル) は、グローバル状態を共有していないかのように扱う必要があります (場合によっては、状態を共有できません)。ファイル間で状態を共有しようとしている場合は、ノードのドキュメントのモジュール セクションを読むことをお勧めします。

于 2012-04-30T01:36:01.907 に答える
0

独自の変数ハッシュまたは配列を作成し、変数を自分で割り当てることができます。

var myVariable = "Hello";
var varArray = new Array()
    varArray["exchangeVariable"] = myVariable;
于 2012-04-30T01:31:31.310 に答える