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

在Node.js中反序列化之后,将对象与其类重新关联

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

在Node.js中反序列化之后,将对象与其类重新关联

Object.create()
并且
Object.getOwnPropertyDescriptors()
是你所需要的。

const obj = JSON.parse(JSON.stringify(d1))const d3 = Object.create(Dog.prototype, Object.getOwnPropertyDescriptors(obj))

此方法与OP方法之间的区别在于,此方法

prototype
在原型上设置属性,而OP方法直接在对象上设置属性。当您使用带有
hasOwnProperty()
方法的for-
in循环遍历对象自身的属性时,可以看到以下内容:

for (const i in d1) {  if (d3.hasOwnProperty(i)) {    console.log(i)  }}

在我的方法中,它仅输出

_name
,而在OP的方法中,它也输出
getName

不幸的是,它

Object.getOwnPropertyDescriptors()
是ECMAscript
2017的一部分,目前仅在Firefox中受支持,因此您需要使用Babel。


或者,您可以使用

Object.setPrototypeOf()
。它具有比更好的浏览器支持
Object.getOwnPropertyDescriptors()
,但是MDN不推荐使用它,因为它速度慢。

const d3 = JSON.parse(JSON.stringify(d1))Object.setPrototypeOf(d3, Dog.prototype)


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

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

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