2013-04-24 54 views
0

考虑我有一个函数的名称,它不需要在VAR任何说法有它的名称来执行功能的方法 -是那里,当我在一个字符串

var fn = "foo"; 

我可以在一些执行它或类似这样的 -

eval(fn); 

它不起作用。请建议。

我的函数定义看起来就像这样 -

function foo() { 
    ....do something.... 
} 
+0

不FN()工作? – Virus721 2013-04-24 04:54:09

+0

还有其他方法可以在运行时决定一个函数。你绝对需要一个字符串的名字? – michaelb958 2013-04-24 04:54:12

回答

-2

试试这个

eval(fn)(); 

或本

eval(fn + "()"); 
+1

eval被认为是邪恶的。它会工作,但没有必要,应该避免 – mplungjan 2013-04-24 05:04:42

+1

@mplungjan,我想我从EE日知道你:)。无论如何,如果要评估的字符串是由用户输入的,则eval是邪恶的,否则它应该很好地禁止字符串被编译然后执行的事实。 – gurvinder372 2013-04-24 05:10:52

+1

当然 - 但不要使用它比使用它更好,而不是使用更合适的方法 - 是的,我们彼此认识;) – mplungjan 2013-04-24 05:12:42

1

请不要使用eval。

如果函数是在全球范围内,根本就

var fn = "foo"; 
window[fn](); 

DEMO

相关问题