我正在实现一个星型算法,在这种情况下,性能比可读性更重要。
由于我的AStar.FindPath偶尔会在几毫秒内被多次调用,而且良好的性能是必需的,所以在其中包含多个Foo.Bar.Baz,还是在开始时使用var fooBaz=Foo.Bar.Baz并包含多个fooBaz更有效?

FindPath(o, d) {
    var fooBaz = Foo.Bar.Baz;
    // Multiple fooBaz
    // More code...
}


FindPath(o, d) {
    // Multiple Foo.Bar.Baz
    // More code...
}

最佳答案

这取决于你对Fo.B.Bz的处理,以及代码的复杂性。
虽然原则上var foobaz应该更快,但在大多数情况下它将完全相同,因为浏览器将足够聪明,可以优化代码。关键的是,只有当您不分配给foo.bar.baz(看起来是这样的,否则您将无法用局部变量替换它)时,才会发生这种情况。
你自己看,差别很小(计时误差大于测量的差别):
http://jsperf.com/objvsvar

关于javascript - Javascript性能:多个fooBaz VS多个Foo.Bar.Baz,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23291203/

10-09 05:41