如何将 javascript/jquery 中的字符串转换为函数?
我正在尝试使用 JSON 参数列表来初始化函数。但是,其中一个参数是一个函数,我将其存储为字符串,当我尝试使用 eval() 返回该函数时,出现错误。
例如,如果我的 JSON 是:
json = { "one": 700, "two": "function(e){alert(e);}" }
然后在我的代码中:
parameters = eval(json);
$('myDiv').addThisFeature({
parameter_1: json.one,
parameter_2: eval(json.two) // <= generates error
})
Example: http://jsfiddle.net/patrick_dw/vs83H/ http://jsfiddle.net/patrick_dw/vs83H/
var json = '{ "one": 700, "two": "function(e){alert(e);}" }';
var parameters = JSON.parse( json );
eval( 'var func = ' + parameters.two );
func( 'test' ); // alerts "test"
您需要在不支持 JSON 库的浏览器中加载它。
或者进行两个单独的评估:
Example: http://jsfiddle.net/patrick_dw/vs83H/1/ http://jsfiddle.net/patrick_dw/vs83H/1/
var json = '{ "one": 700, "two": "function(e){alert(e);}" }';
eval( 'var parameters = ' + json );
eval( 'var func = ' + parameters.two );
func( 'test' );
我假设您意识到评估的危险。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)