2014-12-25 149 views
0

节日快乐。 我想执行一个函数,我已经保存在一个变量中,因为我可以这样做?将javascript函数转换成变量

我试过了。

funcVar = 'function (a, b) {c = a + b; alert (c);}'; 

document.write (funcVar); 

但没有功能,我想使用该函数是在某个点的变量。

+0

写?!你*可以*'eval',但是...什么是实际用例?换句话说,你为什么认为你想这样做? –

+0

'eval'是你的朋友,它适用于所有的事情,只要做'eval(funcVar)',你就是金。 – adeneo

+3

'eval'不是你的朋友。 'eval'很慢,很难调试,并且会导致比解决问题更多的问题。它解决了几乎没有其他技术无法解决的问题。 – Quentin

回答

2

您需要:

  • 把它写成一个函数,而不是字符串
  • 调用它,而不是将其写入文件,就像它是HTML的字符串
  • 传递参数,因为它没有意义的undefined添加到自身

您应该:

  • 不使用全局

这样的:

var funcVar; 
funcVar = function (a, b) { 
    var c = a + b; 
    alert (c); 
}; 
funVar(1,2); 
0

这不是一个功能,这是一个字符串。您需要删除引号。而你需要执行它,而不是打印:

var funcVar = function (a, b) {c = a + b; alert (c);}; 
 

 
funcVar(23, 42);

-1

这工作。谢谢你们。

var funcVar; 
funcVar = 'function stop() {alert ("Test");}'; 
eval(funcVar); 

stop(); 
+0

如果你对'eval'的所有潜在问题感到满意,你可能更喜欢'new Function(body_string)'语法 –