我有一个非常简单的问题。访问对象的属性(例如object[property]
)和属性的数量是否有任何性能关系?是否存在一些内部循环或其他问题,关于 hasOwnProperty
- 任何循环或只是像 array[index]
那样直接访问??
最佳答案
JavaScript 是一种动态编程语言:可以动态地向对象添加和删除属性。这意味着对象的属性可能会发生变化。大多数 JavaScript 引擎使用类似字典的数据结构作为对象属性的存储 - 每个属性访问都需要动态查找来解析属性在内存中的位置。这种方法使得访问 JavaScript 中的属性通常比访问 Java 和 Smalltalk 等编程语言中的实例变量慢得多。在这些语言中,由于对象的类定义了固定的对象布局,实例变量位于由编译器确定的固定偏移处。访问只是内存加载或存储的问题,通常只需要一条指令。
使用 V8(JavaScript 引擎)以获得更好的性能。
关于javascript - hasOwnProperty 和对象的属性访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39389803/