有什么方法可以将普通对象转换为类对象?

时间:2020-08-07 15:33:57

标签: javascript json class object stringify

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

如何将此普通对象从JSON.parse转换为intanceof Wallet

2 个答案:

答案 0 :(得分:1)

您可以使用Object.assign(target, source)将纯对象的属性分配给您的实例。

请务必仔细阅读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());

答案 1 :(得分:1)

只需使用Object.assign(),就像这样:

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