我有一个 JavaScript ES6 类,它有一个set
使用get
函数设置和访问的属性。它也是一个构造函数参数,因此可以使用所述属性实例化该类。
class MyClass {
constructor(property) {
this.property = property
}
set property(prop) {
// Some validation etc.
this._property = prop
}
get property() {
return this._property
}
}
我_property
用来逃避使用 get/set 的 JS 陷阱,如果我直接设置为property
.
现在我需要对 MyClass 的一个实例进行字符串化以通过 HTTP 请求发送它。字符串化的 JSON 是一个对象,如:
{
//...
_property:
}
我需要保留生成的 JSON 字符串,property
以便我将其发送到的服务可以正确解析它。我还需要property
保留在构造函数中,因为我需要从服务发送的 JSON 构造 MyClass 的实例(它发送带有property
not 的对象_property
)。
我该如何解决这个问题?如果我只是拦截它发送HTTP请求,并发生变异前的MyClass的实例_property
来property
使用正则表达式?这看起来很难看,但我将能够保留我当前的代码。
或者,我可以拦截从服务发送到客户端的 JSON,并使用完全不同的属性名称实例化 MyClass。然而,这意味着服务两侧的类的不同表示。