节点.JS全局变量,当局部名称相同时声明



我有这个代码:

let manager;
exports.setup = async manager => {
this.manager = manager;
};

这可能是重复的,但每次我看到这个,解决方案是使用window.manager = manager从函数内部设置全局变量。如何在 Node 中执行此操作.JS哪里没有windowthis.manager不起作用,因为它似乎this.manager!==manager(全局的(

在这种情况下,函数参数会隐藏局部变量。

考虑以下 2 个模块:

库.js

let manager = 2;
exports.setup = async manager => {
this.manager = manager;
};

主.js

var v = require("./lib.js");
v.setup(5);
console.log(v.manager);

这将打印5manager因为 是您传递给函数的参数。如果要获取本地manager的值(在本例中2(,则需要更改函数参数的名称或将其完全删除。

let manager = 2;
exports.setup = async input => {
this.manager = manager;
};

let manager = 2;
exports.setup = async () => {
this.manager = manager;
};

最新更新