在 Javascript 中,当您获取对象的属性时,获取整个对象与仅获取该对象的属性相比是否会降低性能?
另外请记住,我不是在谈论 DOM 访问,它们是纯粹的简单 Javascript 对象。
例如:
以下代码之间是否存在某种性能差异:
假设更快但不确定:
var length = some.object[key].length;
if(length === condition){
// Do something that doesnt need anything inside of some.object[key]
}
else{
var object = some.object[key];
// Do something that requires stuff inside of some.object[key]
}
我认为这会更慢,但不确定是否重要。
var object = some.object[key];
if(object.length === condition){
// Do something that doesnt need anything inside of some.object[key]
}
else{
// Do something that requires stuff inside of some.object[key]
}
最佳答案
是的,有性能损失。
属性嵌套越深,执行属性查找所需的时间就越多。
检查这个free chapter书的High Performance JavaScript ,在第 31 页,它专门讨论了嵌套成员。
(与属性深度相关的访问时间)
另请参阅此性能测试:
关于javascript对象访问性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2936807/