eval后的返回值

时间:2011-03-06 13:59:33

标签: javascript function eval return

function someFunc() { return 'Hello, world'; }
function call(funcName) { eval(funcName + '()'); }

console.log(call('someFunc'));

console.log不打印'Hello world'。如何在eval函数后返回值?

3 个答案:

答案 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?

获得对函数的引用后,您只需调用它并直接使用返回值。