class ClassA{
func(){
console.log("aaaa this is func")
}
}
@Entry
@Component
struct OutWareSettingPage {
aboutToAppear(): void {
let a:ClassA = new ClassA();
a.func()
let jsonA = JSON.stringify(a)
console.log("aaaa jsonA=" + jsonA)
let a2:ClassA = JSON.parse(jsonA)
a2.func()
}
build() {
}
}
新new出来的对象ClassA的实例a可以调用局部方法func(),不会报错。但是如果把实例a序列化成json字符串,然后再把这个json字符串转换回对象实例,并赋值给a2。这个时候调用a2.func(),会报错。个人感觉是这个func()函数在a2这个实例里面不存在了。。。正常来说,把对象重新赋值是比较常见的做法,如果重新赋值就不能用里面的局部方法了,会不会不太友好。
JSON.parse() 方法返回的是一个普通对象,而不是 DataBean 类的实例。不包含类定义的任何方法。需要在将 JSON 数据转换为 DataBean 实例时,手动创建类的实例,并将 JSON 对象的属性赋值给类的实例。参考