我正在编写一些JavaScript代码来解析用户输入的函数(用于类似电子表格的功能).解析了公式后,我可以将其转换为JavaScript并eval()在其上运行以产生结果.
但是,eval()如果我可以避免它,我总是回避使用,因为它是邪恶的(而且,无论是对还是错,我一直认为它在JavaScript中更加邪恶,因为要评估的代码可能会被用户改变).
那么,什么时候可以使用它?
我需要module.export通过只知道它的string名称来调用对象中 的函数
module.exports = {
a : function() { console.log('a'); },
b : function() { console.log('b'); },
c : function() {
var fn; // string contain the name of the function to call ('a' or 'b' for example)
// How do I call `fn` programatically from here?
// something like `self[fn]()`
}
};
Run Code Online (Sandbox Code Playgroud)