这是一个字符串:
"{aa:function(){},bb:document.body}"
JSON.parse不适用于此,如何将其转换为JS对象?
答案 0 :(得分:2)
你可以使用eval
加上前缀。
警告:Why is using the JavaScript eval function a bad idea?
var string = "{aa:function(){},bb:document.body}",
object;
eval('object = ' + string);
console.log(object);

答案 1 :(得分:1)
在这种情况下,选项可以是new Function()
。
它比eval()
更少邪恶,这里有一个答案,解释了它们之间的区别:
Stack snippet
var string = "{aa:function(){},bb:document.body}",
object;
object = new Function( 'return (' + string + ')' )();
console.log(object);

答案 2 :(得分:0)
如果您需要将字符串视为json对象:
let str = "{\"aa\":\"function() { console.log('Look mama no hands'); }\",\"bb\":\"document.body\"}";
let obj = JSON.parse(str);
let func = null;
eval("func = "+obj.aa);
func();