如何从字符串调用 CommonJs 模块中的函数

How to call a function in a CommonJs module from a string

我在post某处看到可以用eval函数实现,但作者也警告不要使用它。我不知道这是否重要,但我正在使用浏览器和 webpack。你会怎么做?

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
};