gpt4 book ai didi

javascript - 像 NodeJS module.exports 一样将变量传递给 IIFE

转载 作者:太空宇宙 更新时间:2023-11-04 00:53:43 24 4
gpt4 key购买 nike

我试图将变量传递给另一个文件中的 IIFE(必需模块),但它被忽略。

index.js

var modulo = require('./modulo');
modulo.foo = "newFoo";
console.log(modulo.foo);
console.log(modulo.myFunction.innerFunction());

modulo.js

var foo = "oldFoo";
var myFunction = (function(innerFoo) {
return {
innerFunction: function () {
return "Returning innerFunction with " + innerFoo;
}
};
})(foo);

module.exports.foo = foo;
module.exports.myFunction = myFunction;

现在,当我执行 node index.js 时,结果是:

newFoo
Returning innerFunction with oldFoo

如何传递 newFoo 变量,以便 modulo.js 可以在内部使用它?

(实际上,我想传递一个套接字,以便我的 module.js 可以使用它与服务器通信)

提前非常感谢您!!

编辑:解决方案

modulo.js

module.exports.foo = "";
var myFunction = (function() {

return {
innerFunction: function () {
var innerFoo = module.exports.foo;
return "Returning innerFunction with " + innerFoo;
}
};
})();

module.exports.myFunction = myFunction;

最佳答案

您的 IIFE 不是从您要覆盖的 module.foo 读取,而是从 modulo.js 中的实际 foo 变量读取。 Javascript 是使用原始值传递值;)

关于javascript - 像 NodeJS module.exports 一样将变量传递给 IIFE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31046672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com