NodeJS将字符串转换为变量

时间:2012-04-30 01:19:45

标签: string node.js variables

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

代码段:

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

this[exchangeVariable] = 'Hello World';

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

谢谢!

2 个答案:

答案 0 :(得分:10)

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

在JavaScript中,对象可以用点表示法(someObj.property)索引,也可以像在示例中那样索引它们(someObj["property"]

在浏览器中,window是浏览器评估您的代码的全局上下文。节点使用variable called global

因此,如果您想引用一个全局定义的变量:

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

但是,这通常被认为是非常糟糕的做法(在Node和浏览器中)。这有很多原因,但我只专注于一个:

在Node中,模块(每个require d文件)应被视为不共享全局状态(在某些情况下,它们不能共享状态)。如果您尝试跨文件共享状态,我建议您阅读节点文档的modules section

答案 1 :(得分:0)

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

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