今天在《javascript权威指南(第六版)》中看到的一句话,没看懂:“如果一个数组确实继承了元素的getter和setter方法,你应该期望它使用非优化的代码路径;访问这种数组的元素的时间会与常规对象属性的查找时间相近”(在7.2节最后),谁能帮忙解释一下啊?
闭关修行中......
没有求证,以下只是个人的想法。原生的数组访问成员时是通过数字下标来获取的,这个速度会比较快,应该就是所谓的优化路径了。然而数组其实也是对象,如果它继承了 getter 和 setter 方法,那么访问成员时应该是通过这俩方法访问而不是通过下标,所以就不如原生的数组那么快。大概是这个意思吧。
没有求证,以下只是个人的想法。原生的数组访问成员时是通过数字下标来获取的,这个速度会比较快,应该就是所谓的优化路径了。然而数组其实也是对象,如果它继承了 getter 和 setter 方法,那么访问成员时应该是通过这俩方法访问而不是通过下标,所以就不如原生的数组那么快。大概是这个意思吧。