我有点迷路:
我试图使变量在另一个函数中可用,因为我确实已经需要返回其他东西。我以为我可以使变量全局可用并将其导入FileB中,这是怎么回事,可能有更好的方法吗?非常感谢
文件:
const variableToPass = null;
module.exports = (env) => {
variableToPass = env;
const varA = require(`./FileB.js`);
const varB = doThis(varA, …doSomething());
return varB;
};
module.exports = variableToPass;
文件B:
const variableToPass = require(‚./.FileA‘);
console.log(variableToPass);
它记录: { [Function] variableToPass: null }
您在这里遇到几个问题。
const env
定义一个常量,所以您不能更改它(env) => {
使用相同名称的局部变量对其进行屏蔽,因此您甚至不必尝试对其进行更改module.exports.env = env;
复制价值的env
声明进行评估的时候,所以即使你没有改变env
,也不会改变出口属性的值只需导出包含您需要的所有内容的明智数据结构即可。
// called.js
var env = null;
function stuff() {
env = 1;
return 2;
}
function get_side_effect() {
return env;
}
module.exports = {
stuff: stuff,
get_side_effect: get_side_effect
};
// caller.js
const caller = require("caller");
var stuff = called.stuff();
var side_effect = called.get_side_effect();
console.log(stuff, side_effect);
或从函数中返回明智的数据结构:
// called.js
var env = null;
function stuff() {
env = 1;
return {
value: 2,
env: env
};
}
module.exports = {
stuff: stuff
};
// caller.js
const called = require("called");
var stuff = called.stuff();
console.log(stuff.value, stuff.env);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句