相关疑难解决方法(0)

在Node.js中反序列化后,将对象与其类重新关联

我正在为一些特定于应用程序的对象编写一个简单的序列化/反序列化框架.

考虑以下:

"use strict";
function Dog(name) { this._name = name; };
Dog.prototype.constructor = Dog;
Dog.prototype.getName = function() { return this._name; }

var d1 = new Dog('fido');
var d2 = JSON.parse(JSON.stringify(d1));  // serialize / deserialize

> d1
Dog { _name: 'fido' }
> d1.getName()
'fido'
> d2
{ _name: 'fido' }
> d2.getName()
TypeError: d2.getName is not a function
Run Code Online (Sandbox Code Playgroud)

在这一点上,我们可以问"这是什么d1d2没有?"

部分工作的一种方法是手动将d1的方法分配给d2:

> d2.constructor = d1.constructor
> d2.getName = d1.getName
> d2.getName()
'fido'
Run Code Online (Sandbox Code Playgroud)

这有几个缺点.首先,我必须手动将d1的每个方法分配给d2.其次,d2获取自己的属性,并且不使用原型机制共享插槽:

> d2
Dog { …
Run Code Online (Sandbox Code Playgroud)

javascript serialization json class node.js

6
推荐指数
1
解决办法
666
查看次数

标签 统计

class ×1

javascript ×1

json ×1

node.js ×1

serialization ×1