Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript性能:变量与大对象';s属性_Javascript_Performance_Variables_Attributes - Fatal编程技术网

Javascript性能:变量与大对象';s属性

Javascript性能:变量与大对象';s属性,javascript,performance,variables,attributes,Javascript,Performance,Variables,Attributes,我正在开发大量HTML5游戏,但我对javascript中的一件事不太确定 当处理一个大对象(有很多属性和方法)时,如果我将属性值存储在一个变量中,会有什么不同吗 假设我必须每秒多次检查application.data.settings.foo.bar中的某些值。我应该将其存储在变量fooBar中吗?如果我理解正确,变量将只是一个引用,所以它不重要 因此:是否应将大型对象属性的值存储在变量中?对于数字,如果将其放置在变量中,您可能会看到性能的提高 我相信你的问题是: 如果您有一个名为: appl

我正在开发大量HTML5游戏,但我对javascript中的一件事不太确定

当处理一个大对象(有很多属性和方法)时,如果我将属性值存储在一个变量中,会有什么不同吗

假设我必须每秒多次检查
application.data.settings.foo.bar
中的某些值。我应该将其存储在变量
fooBar
中吗?如果我理解正确,变量将只是一个引用,所以它不重要


因此:是否应将大型对象属性的值存储在变量中?

对于数字,如果将其放置在变量中,您可能会看到性能的提高


我相信你的问题是:

如果您有一个名为:

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
属性,然后引用它的
bar
属性。这是5个步骤

如果你引用它到一个局部变量中进行访问,你仍然在命中同一个对象,但是你在每个引用上都直接命中了它

然而,归根结底,这不太可能是一个非常显著的性能提升,除非您正在进行大量繁重、快速的访问循环或类似操作。

经典的“尝试并测量结果”可能适用于此。然而,只要你不是每次都在寻找它,我相信它会表现得很好。