【发布时间】:2017-06-19 20:03:45
【问题描述】:
用空白原型初始化对象很容易:Object.create(null)。但是,数组没有像对象那样方便的Array.create 方法。那么,Object.create 的数组等价物是什么?
关于结果数组的访问速度*,初始化空白数组的最佳方法是什么?或者,所述空白数组的访问速度*是否会比定期[]初始化数组的访问速度*慢?
非常感谢任何和所有建设性的回应。
*“访问速度”是指从数组中读取和写入属性的速度。
【问题讨论】:
-
在 JS 中数组是对象,但是是特殊类型的对象。他们的
length属性将它们与普通对象区分开来,即使您喜欢a = []; a[10] = "whatever";,也会刷新。所以数组实例化最好通过字面意义上的[]或通过调用Array函数作为工厂或构造函数来完成。 -
数组对 JS 至关重要,而 JavaScript 引擎经过专门定制,可以尽可能提高性能。如果你开始定制,绕着阵列的工作方式走,你肯定会得到更差的性能。
-
如前所述,不要摆弄基本的对象和数组。 {} 和 [] 完全可以接受、完全可读、高度优化等。哦,上帝,请不要在我必须测试创建空对象或数组的函数的地方编写代码!
标签: javascript arrays object prototype proto