function someFunc() { return 'Hello, world'; }
function call(funcName) { eval(funcName + '()'); }
console.log(call('someFunc'));
但console.log
不打印'Hello world'。如何在eval
函数后返回值?
答案 0 :(得分:4)
你想:
call(funcName) { window[funcName](); }
不要使用void
关键字。它忽略了返回值,并始终从语句中返回undefined。
答案 1 :(得分:1)
使用eval回答您的问题:
function someFunc() { return 'Hello, world'; }
function call(funcName) { return eval(funcName + '()'); }
console.log(call('someFunc'));
如果您信任输入,则可以使用eval。这是经验法则
答案 2 :(得分:0)
不要使用eval
- 这是邪恶的。你为什么不试试这个:
Get JavaScript function-object from its name as a string?
获得对函数的引用后,您只需调用它并直接使用返回值。