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文件)应被视为不共享全局状态(在某些情况下,它们不能共享状态).如果您尝试跨文件共享状态,我建议您阅读节点文档的模块部分.