繁体   English   中英

有什么方法可以将普通的 object 转换为 class object?

[英]Is there any way in which we can convert plain object to class object?

我有一个Wallet class, wallet是这个 class 的一个实例。 我必须将JSON.stringify(wallet)保存在一个文件中。 现在,当我执行JSON.parse(JSON.stringify(wallet))时,它不再是一个 instanceof Wallet

如何将这个普通的 object 从JSON.parse转换为intanceof Wallet

您可以使用Object.assign(target, source)将普通 object 的属性分配给您的实例。

请务必阅读链接的 MDN 文档中提到的所有问题,尤其是在您有嵌套对象的情况下。

 let plain = { foo: 'bar', count: 42 } class Complex { constructor() { this.foo = 'hello'; this.count = 10; } getCount() { return this.count; } getFoo() { return this.foo; } } let test = new Complex(); console.log(test.getFoo()); console.log(test.getCount()); console.log('==== assigning plain object ==='); Object.assign(test, plain); console.log(test.getFoo()); console.log(test.getCount());

只需使用Object.assign() ,如下所示:

const walletLiteral = JSON.parse(response);
const walletInstance = Object.assign(new Wallet(), walletLiteral);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM