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"}
1 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
看看MDN上new function的例子
// 创建了一个能返回两个参数和的函数
const adder = new Function("a", "b", "return a + b");
// 调用函数
adder(2, 6);
// 8
new Function ([arg1[, arg2[, ...argN]],] functionBody)
在本例子中
jsonstr = (new Function("return " + str))();
即为:
jsonstr = (new Function("return {'a':'a','b':'b'}"))();
动态编译了functionBody,实际效果是:
jsonstr = (function(){return {"a":"a","b":"b"}})();
添加回答
举报
0/150
提交
取消