发现问题:
在与后端交互的存值过程中,我通过自己的构造函数构造了一个对象,举例如下
function Person(){
this.name = 'Me'
}
let p = new Person()
console.log(p.name) // Me
当我通过JSON序列化给对象保存之后,会丢失构造函数,导致构造函数上的属性无法访问:
let myP = JSON.parse(JSON.stringfy(p))
console.log(p.name) // undefined
所以一般存对象的时候,前端自身不会对其做序列化操作。而是直接传递
data: {
p
}
我的疑问
为什么我直接传递一个对象如上面的 p ,这种方式后端返给我的时候,p的构造函数不会丢失?后端是如何存储的呢?
后端无法原样保存,只能由你实现
toJSON()
和fromJSON()
,进行数据交互。