先谢谢了
var str = '{"a":"a","b":"b"}';
var jsonstr;
~(function strToJson(str){
jsonstr = (new Function("return " + str))();
// return jsonstr;
})(str);
console.log(typeof jsonstr); //object
console.log(jsonstr); //Object {a: "a", b: "b"}
看看MDN上new function的例子
在本例子中
jsonstr = (new Function("return " + str))();
即为:
jsonstr = (new Function("return {'a':'a','b':'b'}"))();
动态编译了functionBody,实际效果是:
jsonstr = (function(){return {"a":"a","b":"b"}})();