2010-10-15 74 views
2

我在查看一些代碼並看到了這些評論,如何向全局幫助性能提升功能?由於性能原因將函數提升爲全局函數?

// this function is promoted to be global 
// to make firefoxs jit happy - URGH 

function clamp(x, min, max) { 
if(x < min) return min; 
if(x > max) return max-1; 
return x; 
} 
+2

http://www.slideshare.net/nzakas/speed-up-your-javascript – Incognito 2010-10-15 19:44:55

回答

2

因爲函數僅在它們進入作用域時才被實例化。如果函數是在另一個函數中定義的,那麼每次調用外部函數時都會實例化該函數。使其成爲全局性的可確保它僅實例化一次。

這是否會對性能產生明顯影響取決於實際的程序流程。如果有的話,這樣的優化只是有用的,例如,如果clamp被定義在另一個函數內部,並且該函數在循環內被重複調用很多次。