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