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

    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"}


米琪卡哇伊
浏览 417回答 1
1回答

缥缈止盈

看看MDN上new function的例子// 创建了一个能返回两个参数和的函数const adder = new Function("a", "b", "return a + b");// 调用函数adder(2, 6);//  8new 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"}})();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript