评估功能

时间:2011-10-19 14:54:18

标签: javascript browser node.js eval web-worker

我正在尝试创建一个小型库,您可以发送一个对象(具有函数)和一些数据,以及args,它会将对象,数据和args发送给工作进程,然后工作进程将对对象进行评估重建函数(从字符串到函数)

目前我有这个:

JSON.stringify(object, function(key, val) { if typeof val === 'function' { return val + '' } return val });

此函数将对包含函数的对象进行字符串化。

在我的工作人员中,我试图撤消这个过程。

我尝试过以下方法: eval(object) 我也试过实现JSON.parse,当我遇到一个函数时尝试eval()每个函数。

我也试过eval("return " + object.function)

这可能吗?

1 个答案:

答案 0 :(得分:1)

你可能想要:

eval("(" + object.function + ")");

你不能在某个地方放置一个return语句。

function() {}被评估为函数声明,由于没有名称而失败。由于要解析的数据表示函数 expression ,如var f = function() {},因此需要在其周围放置(),以便将其作为表达式进行求值。