栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将继承的对象字符串化为JSON?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将继承的对象字符串化为JSON?

好吧,就是这样,

JSON.stringify
它不会保留该对象的任何非拥有属性。您可以在此处查看有关其他缺陷和可能的解决方法的有趣讨论。

还要注意,作者不仅记录了问题,而且编写了一个名为HydrateJS的库,它可能会对您有所帮助。

这个问题比乍一看要深一些。即使

a
真正地字符串化为
{"position":0,"someval":50}
,然后对其进行解析也会创建一个具有所需属性的对象,但该对象既不是Actor的实例,也不是指向WorldObject的原型链接(毕竟,parse方法没有这个功能)信息,因此它不可能以这种方式还原它)。

为了保留原型链,需要一些巧妙的技巧(例如HydrateJS中使用的技巧)。如果这不是您要的目标,则可能只需在对对象进行字符串化之前对其进行“展平”。为此,例如,您可以迭代对象的所有属性,而不管它们是否是拥有的,然后重新分配它们(这将确保它们在对象本身上定义,而不仅仅是从原型继承)。

function flatten(obj) {    var result = Object.create(obj);    for(var key in result) {        result[key] = result[key];    }    return result;}

函数的编写方式不会突变原始对象。所以用

console.log(JSON.stringify(flatten(a)));

您将获得所需的输出,并且

a
将保持不变。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410100.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号