String NodeJS将字符串转换为变量

String NodeJS将字符串转换为变量,string,node.js,variables,String,Node.js,Variables,我试图使用字符串更新nodejs中变量的内容。 在客户端javascript中,这是通过使用window[variable]完成的,但是因为nodejs中没有窗口。我尝试使用这个和模块,但是我得到的只是一个空对象。需要帮忙吗谢谢 代码段: var myVariable = 'Hello'; var exchangeVariable = 'myVariable'; this[exchangeVariable] = 'Hello World'; /* myVariable should

我试图使用字符串更新nodejs中变量的内容。 在客户端javascript中,这是通过使用window[variable]完成的,但是因为nodejs中没有窗口。我尝试使用这个和模块,但是我得到的只是一个空对象。需要帮忙吗谢谢

代码段:

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

this[exchangeVariable] = 'Hello World';

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

谢谢

您可以创建自己的变量哈希或数组,然后自己分配变量

var myVariable = "Hello";
var varArray = new Array()
    varArray["exchangeVariable"] = myVariable;

您可以创建自己的变量哈希或数组,然后自己分配变量

var myVariable = "Hello";
var varArray = new Array()
    varArray["exchangeVariable"] = myVariable;

在我直接回答你的问题之前,这里有一些背景:

在JavaScript中,对象可以通过点符号someObj.property进行索引,也可以像示例中的someObj[property]那样对它们进行索引

在浏览器中,“窗口”是浏览器在其中计算代码的全局上下文。节点使用一个

因此,如果要引用已全局定义的变量:

> var someGlobalVar = "hi";
> var myLookupKey = "someGlobalVar";
> global[myLookupKey]
'hi'
但是,在节点和浏览器中,这通常被认为是非常糟糕的做法。原因有很多,但我只关注其中一个:


在节点中,每个所需文件的模块应被视为不共享全局状态,在某些情况下,它们不能共享状态。如果您试图在文件之间共享状态,我建议您通读节点文档的详细信息。

在我直接回答您的问题之前,这里有一些背景知识:

在JavaScript中,对象可以通过点符号someObj.property进行索引,也可以像示例中的someObj[property]那样对它们进行索引

在浏览器中,“窗口”是浏览器在其中计算代码的全局上下文。节点使用一个

因此,如果要引用已全局定义的变量:

> var someGlobalVar = "hi";
> var myLookupKey = "someGlobalVar";
> global[myLookupKey]
'hi'
但是,在节点和浏览器中,这通常被认为是非常糟糕的做法。原因有很多,但我只关注其中一个:


在节点中,每个所需文件的模块应被视为不共享全局状态,在某些情况下,它们不能共享状态。如果您试图在文件之间共享状态,我建议您阅读节点文档的详细信息。

以这种方式访问变量的目的是什么?以这种方式访问变量的目的是什么?为什么是数组?空白对象将更适用于此用途。你没有利用数组的任何行为我说的是散列或数组,我不知道他的用例。我只是选择写一个数组作为例子。为什么是数组?空白对象将更适用于此用途。你没有利用数组的任何行为我说的是散列或数组,我不知道他的用例。我只是选择写一个数组作为例子。奇怪的是这个答案被否决了。。。这是LGTM,至少保持在0。我会为《触手阿凡达》的那一天投票;当有人意识到这一点时,我总是微笑:奇怪的是,这个答案被否决了。。。这是LGTM,至少保持在0。我会为《触手阿凡达》的那一天投票;当有人认出它时,它总是让我微笑: