后端是如何保存前端通过构造函数构造出的对象上继承来的属性的?

发现问题:

在与后端交互的存值过程中,我通过自己的构造函数构造了一个对象,举例如下

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的构造函数不会丢失?后端是如何存储的呢?

阅读 1.5k
1 个回答

后端无法原样保存,只能由你实现 toJSON()fromJSON(),进行数据交互。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题