Javascript 如何从字符串调用CommonJs模块中的函数
我在某个地方的帖子中读到,它可以通过使用Javascript 如何从字符串调用CommonJs模块中的函数,javascript,webpack,commonjs,Javascript,Webpack,Commonjs,我在某个地方的帖子中读到,它可以通过使用eval函数来实现,但作者也警告不要使用它。我不知道这是否重要,但我正在使用浏览器和网页包。你会怎么做 const init = (fname) => { console.log(fname); //'myFunction' // How do I call myFunction from string here? }; const myFunction = () => {}; module.exports = { in
eval
函数来实现,但作者也警告不要使用它。我不知道这是否重要,但我正在使用浏览器和网页包。你会怎么做
const init = (fname) => {
console.log(fname); //'myFunction'
// How do I call myFunction from string here?
};
const myFunction = () => {};
module.exports = {
init
};
诀窍是将函数名映射到实际函数
const functionMap = {myFunction};
const init = (fname) => {
console.log(fname); //'myFunction'
functionMap[fname]() // call functionMap.myFunction
};
const myFunction = () => {};
module.exports = {
init
};
谢谢你,先生!这是可行的,但我想知道是否有类似于引用本地模块函数的名称空间的东西。这很危险-你应该明确定义其他人可以调用什么。如果确实需要,请使用
global
变量: