【发布时间】:2014-07-04 07:29:39
【问题描述】:
我有一个配置,我想在其中确定稍后在某些代码中使用的函数:
get_config = () ->
{
"function" : (stuff) ->
stuff + "more stuff"
}
此代码在某处被调用,配置以 json 格式存储在文件中,使用以下辅助函数:
stringifyWithFunctions = (object, replacer, spacing) ->
stringify_functions = (key, val) ->
if replacer
if typeof val == 'function'
return replacer(key, val.toString())
else
return replacer(key, val)
else
if typeof val == 'function'
return val.toString()
else
return val
return JSON.stringify(object, stringify_functions, spacing)
我最终得到一个如下所示的 json 对象:
{ 'function' : 'function (stuff) {return stuff + "more stuff"}' }
但是,我想不出稍后加载此函数的好方法。
loaded_function = eval(config['function'])
导致错误“Unexpected token (”,我觉得可能有一种更清洁的方法可以做到这一点。有什么想法吗?
【问题讨论】:
标签: javascript json coffeescript