给定一个描述Javascript函数的字符串,将其转换为Javascript函数 [英] Given a string describing a Javascript function, convert it to a Javascript function

查看:86
本文介绍了给定一个描述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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆