评估一个函数
我正在尝试创build一个小型库,您可以发送一个对象(具有函数)和一些数据以及参数,并将对象,数据和参数发送给工作进程,然后该进程将评估该对象以重build函数(从string到函数)
目前我有这个:
JSON.stringify(object, function(key, val) { if typeof val === 'function' { return val + '' } return val });
这个函数会将包含函数的对象串联起来。
在我的工作人员,我试图撤消这个过程。
我已经尝试了以下内容: eval(object)
我也试图实现JSON.parse与eval()每个函数,当我碰到一个。
我也试过eval("return " + object.function)
这可能吗?
你可能想要:
eval("(" + object.function + ")");
你不能把return语句放在某个地方。
function() {}
被评估为函数声明 ,因为它没有名字而失败。 由于要parsing的数据表示一个函数expression式 ,比如var f = function() {}
,所以你需要在其周围放置()
,以便将它作为expression式求值。