Javascript 条件内循环或条件内循环,从性能角度来看,哪一个是最好的

Javascript 条件内循环或条件内循环,从性能角度来看,哪一个是最好的,javascript,optimization,Javascript,Optimization,这可能是编码中的一种常见模式,尽管我没有足够的知识来识别它或使用正确的术语(那时我会用谷歌搜索它)。 当您正在创建一个对象,该对象将调用循环中的方法,但循环的内容可能会根据一组特定的条件发生变化时,您会这样做吗(伪代码): 或 我更喜欢版本1,因为它更易于维护,但我觉得版本2更轻。我说得对吗 我意识到答案可能会因用例的不同而有很大差异,所以我的答案是:我有一个javascript滑块,作为jQuery插件实现。根据选项的不同,当滑块到达最后一帧时,它要么向后滚动以开始,要么无缝循环。现在,如果它

这可能是编码中的一种常见模式,尽管我没有足够的知识来识别它或使用正确的术语(那时我会用谷歌搜索它)。
当您正在创建一个对象,该对象将调用循环中的方法,但循环的内容可能会根据一组特定的条件发生变化时,您会这样做吗(伪代码):

我更喜欢版本1,因为它更易于维护,但我觉得版本2更轻。我说得对吗

我意识到答案可能会因用例的不同而有很大差异,所以我的答案是:我有一个javascript滑块,作为jQuery插件实现。根据选项的不同,当滑块到达最后一帧时,它要么向后滚动以开始,要么无缝循环。现在,如果它必须无缝循环,那么当每个幻灯片前进时,我必须设置左边刚刚消失的元素,以便在最右边排队。这意味着我必须检测元素何时从视图中消失,并对scrollLeft值进行大量其他检查,如果只是滚动,则不需要执行这些检查。

那么我应该怎么做呢?

您的用例看起来很简单,不需要太多的计算时间,尽管您应该使用可读性更好、更易于维护的代码。
当使用性能关键型代码时,您应该尽可能短/便宜地将代码保存在循环中。

您的用例似乎很简单,并且不需要太多计算时间,但您应该使用可读性更强且易于维护的代码。
在使用性能关键型代码时,您应该尽可能短/便宜地将代码保存在循环中。

我相信您理解这一点,但值得重复:

如果它没有坏,就不要修理它

仅仅考虑一下,你几乎永远不会发现非玩具软件的性能问题

当人们学习如何解决性能问题()时, 他们经常被问到秘密是什么。 秘诀很简单——不要猜测,要诊断。

每个人都知道这一点,但他们还是继续猜测。

例如,回顾的答案。

我相信您理解这一点,但值得重复:

如果它没有坏,就不要修理它

仅仅考虑一下,你几乎永远不会发现非玩具软件的性能问题

当人们学习如何解决性能问题()时, 他们经常被问到秘密是什么。 秘诀很简单——不要猜测,要诊断。

每个人都知道这一点,但他们还是继续猜测。

例如,查看。

的答案,做任何更容易阅读和/或维护的事情(#1将所有代码保存在一个地方)。只有在需要时才进行优化。为了避免#1方法变得庞大,可以保留开关,但从#2.调用方法。做任何更易于阅读和/或维护的事情(#1将所有代码保存在一个地方)。只有在需要时才进行优化。为了避免#1方法变得庞大,您可以保留开关,但从#2.调用方法完全正确。当我发布这个的时候,我一定很累了。完全正确。我发这封信的时候一定很累了。
method _method($condition){
    switch($condition){}
}
method init($condition){
  switch($condition){
     case 1:
         this._method = function(){};break;
     case 2:
         this._method = function(){};break;
     ....
  }
}