这是一个非常具体的用例。这些都是打字稿(对于这个用例,我认为它没有影响,但我提到它以防万一)。
我们有主要代码和一个用于后台处理的Web工作者。我们使用Worker.postMessage()来回发布消息。我们总是调用postMessage(myData),其中myData是一个对象。该对象具有成员变量,这些变量是具有作为对象的成员变量的对象......它传递了许多对象。
当我们调用postMessage()时,我们在另一端收到的是提交的对象,而只是数据。方法(即原型)不会传递。 Web工作者通信将数据序列化并在远端重建数据,仅重建数据。查看交付对象的 proto ,就我所知,它只是一个对象,但只是一个基本对象。
所以,看起来最明智的做法就是走遍所有设置 proto 的对象(discussed some here)。这样可以避免在复制构造函数中重新创建每个对象(这需要时间,内存命中数增加一倍,并增加垃圾收集器的工作量)。这似乎是一件合理的事情,因为我们只是重新应用它在发送方面的原型。 (在ES6浏览器中,我们将使用setPrototypeOf()。)
我的问题是,以下浏览器的具体内容是什么?它对这些特定的影响有什么影响(我们关心的是最新版本,因为我们必须有网络工作者):
对于Firefox - it doesn't like it。
对于IE,Chrome和&苹果浏览器?如果是这样,究竟是什么/如何?
答案 0 :(得分:0)