我已经对两种方法进行了基准测试:
访问数组项
var object = [10, 15, 20];
var x = object[0];
var y = object[1];
var z = object[2];
并且 访问对象属性
var object = {
x: 10,
y: 15,
z: 20
};
var x = object.x;
var y = object.y;
var z = object.z;
我本以为访问数组元素速度会更快,因为没有涉及属性名解析。但是出乎我的意料,通过所有浏览器访问对象属性大概比访问数组元素快30%。这个基准测试结果让我感到困惑。为什么前一种方法比后一种方法慢那么多呢?
![图表](https://istack.dev59.com/WP0PH.webp)