NodeJS将字符串转换为变量

Err*_*Dee 1 string variables node.js

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

代码片段:

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

this[exchangeVariable] = 'Hello World';

/*
    myVariable should equal to 'Hello World!'
*/
Run Code Online (Sandbox Code Playgroud)

谢谢!

Nev*_*vir 11

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

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

在浏览器中,window是浏览器评估您的代码的全局上下文.Node使用一个名为global变量.

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

> var someGlobalVar = "hi";
> var myLookupKey = "someGlobalVar";
> global[myLookupKey]
'hi'
Run Code Online (Sandbox Code Playgroud)

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

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