gpt4 book ai didi

javascript - 为什么自定义数组比普通版本慢?

转载 作者:行者123 更新时间:2023-11-28 10:11:38 24 4
gpt4 key购买 nike

我很好奇修改 JavaScript 内置数组类的不同方式的速度,所以我做了一个小测试:

http://jsperf.com/array-vs-custom-array

这比较了向数组添加删除函数的三种不同方法。使用 Object.create() 添加的 remove() 函数似乎比使用 .call() 或添加到 Array.prototype 的相同函数慢得多(在 Chrome 中约为 90%)。它们都做同样的事情,而且实际上是相同的功能,所以我很好奇为什么会有速度差异。

最佳答案

我的猜测是函数查找时间会增加。

在第一种情况下,您已经查找了remove的地址,因此调用该函数很简单。

Object.create() 方法必须首先查找 Array.prototype,然后在新对象的属性中找到它。

最后一个原型(prototype)替换方法会产生原型(prototype)中函数的查找时间。

我不确定如何检验这个假设,但我之前在优化一些 python 代码时见过类似的情况。

关于javascript - 为什么自定义数组比普通版本慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7369854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com