在每个浏览器中分配__proto__的具体影响是什么?

时间:2014-06-18 23:27:49

标签: javascript internet-explorer google-chrome safari prototype

这是一个非常具体的用例。这些都是打字稿(对于这个用例,我认为它没有影响,但我提到它以防万一)。

我们有主要代码和一个用于后台处理的Web工作者。我们使用Worker.postMessage()来回发布消息。我们总是调用postMessage(myData),其中myData是一个对象。该对象具有成员变量,这些变量是具有作为对象的成员变量的对象......它传递了许多对象。

当我们调用postMessage()时,我们在另一端收到的是提交的对象,而只是数据。方法(即原型)不会传递。 Web工作者通信将数据序列化并在远端重建数据,仅重建数据。查看交付对象的 proto ,就我所知,它只是一个对象,但只是一个基本对象。

所以,看起来最明智的做法就是走遍所有设置 proto 的对象(discussed some here)。这样可以避免在复制构造函数中重新创建每个对象(这需要时间,内存命中数增加一倍,并增加垃圾收集器的工作量)。这似乎是一件合理的事情,因为我们只是重新应用它在发送方面的原型。 (在ES6浏览器中,我们将使用setPrototypeOf()。)

我的问题是,以下浏览器的具体内容是什么?它对这些特定的影响有什么影响(我们关心的是最新版本,因为我们必须有网络工作者):

  • Internet Explorer 10& 11?
  • Chrome 34& 35?
  • Safari 7?

对于Firefox - it doesn't like it

对于IE,Chrome和&苹果浏览器?如果是这样,究竟是什么/如何?

1 个答案:

答案 0 :(得分:0)

答案是 - Chrome和& Opera,在Firefox中非常糟糕,在IE中非常糟糕。我们对复制构造函数进行了性能测试,并设置了原型。

Details here:

enter image description here