在javascript中隐式导入函数
我有两个文件在javascript中隐式导入函数,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我有两个文件 //callee.js const first = (name) => { return name; } const second = (name) => { return name + " is this"; } module.exports = [ first, second ] //caller.js const nav = require("./callee.js"); console.log(nav.first("bob"
//callee.js
const first = (name) => {
return name;
}
const second = (name) => {
return name + " is this";
}
module.exports = [
first,
second
]
//caller.js
const nav = require("./callee.js");
console.log(nav.first("bob")); //returns bob
...(Object.values(nav)); //want something like this
first("bob"); // this should return bob
如何调用或分解caller.js中的import变量“nav”,以获得上述结果?这是您想要的吗
const[first,second]=require(“./callee.js”);
第一(“鲍勃”);
如果您不想像郝武的优秀答案那样显式地键入变量名,您可以这样做:
Object.assign(window, require('./callee.js'));
first('bob');
(将Node.js中的窗口
替换为全局
。)
重要提示:这太可怕了。我写这篇文章是为了从字面上回答这个问题,只是为了证明这是可能的。请不要这样做。要么保留名称空间(
nav.first
),要么提取特定函数(如郝武所示)。不,我不希望像您上面提到的那样对赋值进行解构。我想要的是将callee.js文件的导出函数隐式地存在于caller.js文件中。不,我不想要像Hao Wu提到的那样的解构赋值。我想要的是将callee.js文件的导出函数隐式地存在于caller.js文件中。想象一下,第一个和第二个函数最初出现在caller.js文件中。所以调用函数。我先写(“名字”)。现在,如果我将该函数移出caller.js文件,但仍然希望像前面一样调用它。