javascript - 有没有办法在 NodeJS 文件范围动态中获取变量名?

标签 javascript node.js

我需要一种方法来动态调用文件中的变量, 在前端,如果您在函数外部创建变量,则将其放在窗口对象上,然后您可以使用

获取它
window['nameOfVar']

我尝试用this而不是nodejs中的窗口来实现,但我什么也没得到。

const self  = this;
var temp = 'im dynamic'

console.log(self['temp']) // this will print undefined in nodejs

有没有办法实现这种行为

最佳答案

is there a way to achieve this behavior

是的,但你不想使用它。

您所描述的内容在浏览器中有效,因为顶级作用域是全局的,并且使用 var 的顶级全局变量在全局对象上创建属性,可以通过 window 访问该属性。它在 Node.js 中不起作用,因为默认情况下 Node.js 将您的代码作为模块运行,而模块顶层的代码不在全局范围内,因此在该代码中使用 var 不会在全局对象上创建属性(并且没有 window global 用于访问全局对象,尽管 Node.js 确实有 global - 但不要使用它)。

不要做那么长的事情,而是使用您自己的对象和属性:

const stuff = {
    one: "I'm one",
    two: "I'm two"
};

for (let i = 0; i < 5; ++i) {
    const name = Math.random() < 0.5 ? "one" : "two";
    console.log(stuff[name]);
}

关于javascript - 有没有办法在 NodeJS 文件范围动态中获取变量名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55006040/

相关文章:

javascript - 我是 React 新手,有人可以告诉我为什么会发生这种情况......?

javascript - 如何查询从 Firebase 实时数据库获取的 ionic 3 结果?

node.js - 类型错误 : The "config.server" property is required and must be of type string

node.js - 动态更新nodejs cronjob周期

javascript - 在nodejs应用程序内执行bash命令(具有root访问权限)

javascript - 通过express发送pdf到js客户端并下载

javascript - react : how to set default value in component from Ajax

c# - 使用 jquery 访问 Asp.net 动态下拉列表

javascript - 在 Node.js 中监听所有发出的事件

node.js - 我不知道如何使用 nodejs native 驱动程序打印 mongodb 查询结果