Javascript性能:变量与大对象的属性

时间:2012-09-20 17:17:49

标签: javascript performance variables attributes

我正在构建一些HTML5游戏,我不确定javascript中的一件事。

当处理大型对象(具有大量属性和方法)时,如果我将属性值存储在变量中,它是否有所不同?

假设我必须每秒多次application.data.setings.foo.bar检查一些值。我应该将它存储在变量fooBar中吗?如果我理解正确,变量只是一个参考,所以它无关紧要。

所以: 您是否应该将大对象的属性值存储在变量中?

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

我相信你的要求是:

如果您有一个名为:

的变量

application.data.settings.foo.bar = { some: 'value' }

使用application.data.settings.foo.bar访问它是否更高效 - 或者说:var bar = application.data.settings.foo.bar然后引用bar

我的猜测是,对变量的赋值可能稍微高一些 - 只是因为解释器为了访问相关项而采取的步骤较少。如果使用application.data.settings.foo.bar - 解释器必须使用对application对象的引用,然后引用它的data属性,然后引用其setting属性,然后引用它的foo 1}}属性,然后引用其bar属性。这是5个步骤。

如果您将其引用到本地变量中以进行访问 - 您仍然会访问同一个对象,但是您可以直接在每个引用上进行操作。

然而,在一天结束时,这不太可能是一个非常明显的性能提升,除非你做了很多繁重的,快速访问循环或类似的东西。

答案 2 :(得分:-1)

对于数字,如果将其置于变量

中,您可能会看到性能提升