JavaScript属性访问速度:var.property与var [“ property”]之差?

wei*_*ima 5 javascript performance

我有一个非常基本的JavaScript问题。

我正在编写一个将生成JavaScript代码的程序。对于访问变量的属性,我有两种选择:

1. make the property access a static query. i.e.
var result = object.property

OR

2. make the property access a dynamic query, i.e.
var result = object["property"]
Run Code Online (Sandbox Code Playgroud)

它给我带来的区别是,对于第一种情况(静态查询情况),我将必须为每个属性访问生成单独的代码。而在第二种情况下(动态查询情况),我可以为每个属性重用相同的函数。

我可以决定是否知道这对性能有什么影响吗?

obj.property更快还是obj["property"]

可能这还取决于将用于解释javascript的引擎,因此我必须提到我将使用Rhino作为我的javascript引擎。

因此,请对此问题进行一些说明。

谢谢,问候,非常

Mik*_*maa 2

Javascript 中没有静态属性,只有动态属性访问存在。

无论您在源代码文件中使用什么语法,都始终以相同的方式查询属性。

使用 jshint 为您的 JS 文件推荐良好的源代码约定:

http://jshint.com/

始终建议使用点表示法。仅当您的 Javascript 属性没有在 JS 语法中传递的 id 时才使用引号表示法。

  • 这在理论上是正确的,但现代 JS 引擎足够智能,可以将静态查找优化为本质上只是指针操作。`object.property` 和 `object["property"]` 之间没有区别,但是它们都比 `object[variable]` 更快。 (9认同)