我有此代码:
let manager;
exports.setup = async manager => {
this.manager = manager;
};
这可能是重复的,但是每次我看到这个时,解决方案都是使用window.manager = manager
从内部函数设置全局变量。如何在没有window
的Node.JS中执行此操作?
this.manager
不起作用,因为它似乎this.manager
!== manager
(全局值)
答案 0 :(得分:0)
在这种情况下,您的函数参数会隐藏局部变量。
请考虑以下2个模块:
lib.js
let manager = 2;
exports.setup = async manager => {
this.manager = manager;
};
main.js
var v = require("./lib.js");
v.setup(5);
console.log(v.manager);
这将打印5
,因为manager
是您传递给函数的参数。如果要获取本地manager
(在此示例中为2
)的值,则需要更改功能参数的名称或将其完全删除。
let manager = 2;
exports.setup = async input => {
this.manager = manager;
};
或
let manager = 2;
exports.setup = async () => {
this.manager = manager;
};