hasOwnProperty和对象的属性访问权限

时间:2016-09-08 11:31:41

标签: javascript object properties

我有一个非常简单的问题。访问对象的属性如object[property]和属性数量是否有任何性能关系?是否有一些内部循环或类似问题,关于hasOwnProperty的相同问题 - 任何循环或只是直接访问array[index] ??

1 个答案:

答案 0 :(得分:1)

JavaScript是一种动态编程语言:可以动态地向对象添加和删除属性。这意味着对象的属性可能会发生变化。大多数JavaScript引擎使用类似字典的数据结构作为对象属性的存储 - 每个属性访问都需要动态查找来解析属性在内存中的位置。这种方法使得访问JavaScript的属性通常比访问Java和Smalltalk等编程语言中的实例变量要慢得多。在这些语言中,由于对象类定义的固定对象布局,实例变量位于由编译器确定的固定偏移处。访问只是内存加载或存储的问题,通常只需要一条指令。

使用V8(JavaScript引擎)以获得更好的性能。