为了访问数组中的数据,我创建了一个类似于 enum
的变量,以便为字段提供人类可读的标识符。
var columns = { first: 0, second: 1 };
var array = ['first', 'second'];
var data = array[columns.first];
当我发现 Object.freeze
时,我想将其用于枚举以使其无法更改,并且我希望 VM 能够利用此信息发挥其优势。
事实证明,测试在 Chrome 和 Node 上变慢,但在 Firefox 上稍快(与通过数字直接访问相比)。
代码可在此处获得:http://jsperf.com/array-access-via-enum
以下是来自 Node 的基准测试(对应于 JSPerf 测试):
fixed Number: 12ms
enum: 12ms
frozenEnum: 85ms
V8 是否还没有很好的实现,或者对于我的用例来说,这种方法是否有一些次优的地方?
最佳答案
我在 Firefox 20 和 IE 10 中进行了测试,它的速度要快得多,而 IE 10 的速度稍快且更一致。
所以我的回答是不,V8 还没有很好的实现
关于javascript - 为什么卡住的 "enum"变慢了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16057837/