gpt4 book ai didi

javascript - 使用 new Function() 将字符串转换为对象 - 这是如何工作的?

转载 作者:行者123 更新时间:2023-11-29 19:20:21 25 4
gpt4 key购买 nike

我无法让 JSON.parse 将字符串转换为对象,我发现这段代码可以解决我的问题 - 但是,我无法弄清楚它是如何工作的。如果有人可以(向 JavaScript 初学者)解释第 3 行发生了什么,我将不胜感激。谢谢。

var str, obj;
str = "{src:'img/testimage.jpg', coord:{x:17, y:39}, width:200, height:200}";
obj = new Function('return '+str)();

最佳答案

它创建一个以您的字符串作为函数主体的函数,但在它前面返回 return 然后它运行该函数。结果是评估您的字符串并返回它创建的对象。

它基本上与这样做相同,但您以编程方式创建函数:

function f() {
return {src:'img/testimage.jpg', coord:{x:17, y:39}, width:200, height:200};
}

obj = f();

仅供引用,JSON.parse() 不起作用,因为您的字符串是有效的 Javascript,但不是有效的 JSON。为了使其成为有效的 JSON,还必须引用所有属性名称。


这将是有效的 JSON:

var str = '{"src":"img/testimage.jpg", "coord":{"x":17, "y":39}, "width":200, "height":200}'

关于javascript - 使用 new Function() 将字符串转换为对象 - 这是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33354242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com