类中的方法(对象的原型中的方法)消失
Posted stardee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类中的方法(对象的原型中的方法)消失相关的知识,希望对你有一定的参考价值。
问题:
使用indexdb,sqlite等本地储存后再取出对象导致类中的方法(对象的原型中的方法)消失。
解决方法:
- 使用Object.assign()合并对对象。这时,this.details中的每个元素都是RetailOrderDetailEditDto的实例化对象。
重新构造一个对象new RetailOrderDetailEditDto(), 这个对象中包含所需要的方法,toJSON等。
this.details = this.details.map(e => { this.amount += e.price * e.qty; return e = Object.assign(new RetailOrderDetailEditDto(), e); });
- 在Class 中添加构造方法
即在创建 RetailOrderDetailEditDto 类时,constructor可以接收data
constructor(data?: IRetailOrderDetailEditDto) {
if (data) { for (var property in data) { if (data.hasOwnProperty(property)) (<any>this)[property] = (<any>data)[property]; } }
}
export class RetailOrderDetailEditDto implements IRetailOrderDetailEditDto { id: number | undefined; productId: number | undefined; productName: string | undefined; productSkuId: number | undefined; ... constructor(data?: IRetailOrderDetailEditDto) { if (data) { ... } } init(data?: any) { ... } static fromJS(data: any): RetailOrderDetailEditDto { ... } toJSON(data?: any) { ... } }
以上是关于类中的方法(对象的原型中的方法)消失的主要内容,如果未能解决你的问题,请参考以下文章