给定一个描述Javascript函数的字符串,将其转换为Javascript函数 [英] Given a string describing a Javascript function, convert it to a Javascript function
本文介绍了给定一个描述Javascript函数的字符串,将其转换为Javascript函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
说我有一个类似以下的Javascript字符串
Say I've got a Javascript string like the following
var fnStr = "function(){blah1;blah2;blah3; }" ;
(这可能来自用户输入的表达式,正式消毒,或者可能是一些符号计算的结果。这没关系。)
(This may be from an expression the user has typed in, duly sanitized, or it may be the result of some symbolic computation. It really doesn't matter).
我想定义 fn
,好像以下行在我的代码中:
I want to define fn
as if the following line was in my code:
var fn = function(){blah1;blah2;blah3; } ;
我该怎么做?
我提出的最好的是:
var fn = eval("var f = function(){ return "+fnStr+";}; f() ;") ;
这似乎可以解决问题,即使它使用了可怕的 eval( )
,并使用一个稍微复杂的参数。我可以做得更好吗?即要么不使用 eval()
,要么提供更简单的参数?
This seems to do the trick, even though it uses the dreaded eval()
, and uses a slightly convoluted argument. Can I do better? I.e. either not use eval()
, or supply it with a simpler argument?
推荐答案
还有功能对象。
var adder = new Function("a", "b", "return a + b");
这篇关于给定一个描述Javascript函数的字符串,将其转换为Javascript函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文