Javascript:复杂的值引用会影响执行速度吗?

Javascript:复杂的值引用会影响执行速度吗?,javascript,performance,Javascript,Performance,我正在写一个动画循环,因此试图优化速度。这需要牺牲大量的可读性,但我想知道在某种程度上它是否会适得其反。例如,我可以从以下内容开始: var Animation = Animations[Current_Animation]; var Sequence = Animation.Sequences[Current_Sequence]; var Action = Sequence.Actions[Current_Action]; if (Action.Repeat_Count != Action.R

我正在写一个动画循环,因此试图优化速度。这需要牺牲大量的可读性,但我想知道在某种程度上它是否会适得其反。例如,我可以从以下内容开始:

var Animation = Animations[Current_Animation];
var Sequence = Animation.Sequences[Current_Sequence];
var Action = Sequence.Actions[Current_Action];
if (Action.Repeat_Count != Action.Repeat_End) Sequence.Index--;
但是,当我删除优化的无关变量时,它产生了真正大量的引用:

if (Animations[Current_Animation].Sequences[Current_Sequence].Actions
 [Animations[Current_Animation].Sequences[Current_Sequence].Index].Repeat_Count
 != Animations[Current_Animation].Sequences[Current_Sequence].Actions
 [Animations[Current_Animation].Sequences[Current_Sequence].Index].Repeat_End)
 Animations[Current_Animation].Sequences[Current_Sequence].Index--;
我的循环现在充满了这样的怪物。所以我想知道,如果解释器不得不停下来整理所有这些内容,那么实际上可能会比使用占位符慢。或者,它自动知道这一切意味着什么,而不使用任何额外的CPU


谢谢

在我使用过的任何JS引擎上,更短的代码可读性更强,速度更快,更不用说如果这是客户端JS,下载时间会更短,因为字节更少

但是,您应该使用
var
关键字,以便所有变量都不在全局范围内。我确信您没有理由在上面的代码中将
动画
序列
动作
作为全局变量,因为它们实际上只是临时变量,但由于它们没有显式声明为当前函数作用域的局部变量,因此它们自动成为全局变量

var Animation = Animations[Current_Animation];
var Sequence = Animation.Sequences[Current_Sequence];
var Action = Sequence.Actions[Current_Action];
if (Action.Repeat_Count != Action.Repeat_End) Sequence.Index--;
据本周的一篇文章称,它在几乎所有广泛部署的浏览器中都具有重要意义


然而,在我看来,使用引用的版本(第一个代码示例)更容易阅读。它需要通过
var
进行适当的范围控制,但它(承认主观上)是更好的代码。

现代浏览器在这方面可能改进了很多,但避免不必要的属性查找仍然是一件好事。此外,重复
动画[当前动画][Current\u Sequence]
一次又一次的序列[当前序列]感觉是不对的;)