javascript对象访问性能

标签 javascript performance object properties

在 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/

相关文章:

javascript - 路线模型中的 Ember 错误

javascript - 过滤器不是创建一个新数组吗?

c++ - 为什么转置 512x512 的矩阵比转置 513x513 的矩阵慢得多?

java - 使对象成为静态的好处,即使它们不需要如此?

java - 如何在循环中访问对象字段?

javascript - Javascript 模块导入时出现隐秘错误消息

javascript - 双击而不选择内容

php - MySQL:如何仅使用一个查询获取表中不存在 ID 的百分比

objective-c - 不知道为什么出现 "EXC Bad Access"错误

java - java中如何从一个方法返回不同类型的对象?