为了账号安全,请及时绑定邮箱和手机立即绑定

js str转json、有段代码看不懂、请教授翻译

js str转json、有段代码看不懂、请教授翻译

米琪卡哇伊 2019-02-09 15:27:44
    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"}})();


查看完整回答
反对 回复 2019-02-18
  • 1 回答
  • 0 关注
  • 416 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信