【发布时间】:2018-04-15 11:44:46
【问题描述】:
比方说,我有一个这样的课程:
var block = class {
constructor(val1, val2) {
this.value1 = val1;
this.value2 = val2;
}
}
我想将此类的一个实例从一台服务器发送到另一台服务器。我通常会先通过JSON.stringify(),然后将其发送到另一台服务器,然后再通过JSON.parse(),一旦它到达另一台服务器。但是,这将涉及将其转换为 JSON,并且它将不再是“块”类的实例。
如果我想以一种将其保留为“块”类的实例的方式发送它,那么最佳实践是什么。
【问题讨论】:
-
你不能发送对象,你需要做的是在另一边创建类,你可以使用
Object.assign重新复制回道具 -
与发送数据相比,这里仍然没有开销,..这里的微优化,而不是易于阅读的代码是在浪费你的时间。如果在服务器端重新序列化为相同的对象类有意义,请执行此操作。
-
@DanielPahor 好吧,正如其他人所提到的。一个小信息,HTTP 仅适用于字符串表示。您必须编写一个映射器来从字符串中创建对象,就像 Jackson 在 JAVA 中所做的那样。顺便说一句,它在 Javascript 服务器上应该相当容易,因为它们支持开箱即用的 JSON
-
看看Casting plain objects to function instances (“classes”) in javascript。传输由带有代码和闭包以及身份引用的函数组成的类既困难又低效。