像NodeJS module.exports一样将variables传递给IIFE
我试图将一个variables传递给另一个文件( 需要一个模块)的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
我怎样才能传递newFoovariables,所以modulo.js可以在内部使用它?
(其实,我想传递一个套接字,所以我的module.js可以使用它与服务器通信)
非常感谢您提前!
编辑:解决scheme
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
variables中modulo.js
。 Javascript是传值的原始值;)