有没有一种方法可以动态获取NodeJS文件作用域中的变量名?

Ami*_*ner 0 javascript node.js

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

window['nameOfVar']
Run Code Online (Sandbox Code Playgroud)

我试图用而不是nodejs中的窗口来做到这一点,但我什么也没有。

有没有办法实现这种行为

T.J*_*der 5

有没有办法实现这种行为

是的,但是您不想使用它。

您所描述的内容在浏览器中有效,因为顶级范围是全局的,而顶级全局变量var在global对象上使用create属性(可以通过访问该属性)window。它在Node.js中不起作用,因为默认情况下,Node.js将您的代码作为模块运行,并且模块顶层的代码不在全局范围内,因此var在该代码中使用时不会在全局对象(并且没有window全局变量可以访问全局对象,尽管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]);
}
Run Code Online (Sandbox Code Playgroud)