Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从字符串调用CommonJs模块中的函数_Javascript_Webpack_Commonjs - Fatal编程技术网

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
变量: