我正在写一个动画循环,所以试图优化速度。这涉及到牺牲很多可读性,但是我想知道它是否会在某种程度上变得适得其反。例如,我可能会开始像这样的东西:Javascript:复杂的值引用是否会影响执行速度?
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?
谢谢!
现代浏览器在这方面可能有所改进,但避免不必要的财产查询仍然是一件好事。此外,重复'动画[Current_Animation] .Sequences [Current_Sequence]'一遍又一遍的感觉是错误的;) – 2012-03-15 15:07:05