2010-10-15 77 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被定义在另一个函数内部,并且该函数在循环内被重复调用很多次。