我正在构建一些HTML5游戏,我不确定javascript中的一件事。
当处理大型对象(具有大量属性和方法)时,如果我将属性值存储在变量中,它是否有所不同?
假设我必须每秒多次application.data.setings.foo.bar
检查一些值。我应该将它存储在变量fooBar
中吗?如果我理解正确,变量只是一个参考,所以它无关紧要。
所以: 您是否应该将大对象的属性值存储在变量中?
答案 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)
对于数字,如果将其置于变量
中,您可能会看到性能提升