出于性能原因将功能推广到全球?

时间:2010-10-15 19:42:39

标签: javascript performance firefox

我正在查看一些代码并看过这些评论,如何将功能提升为全局帮助提高性能?

// 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;
}

1 个答案:

答案 0 :(得分:2)

因为函数只有在进入范围时才会被实例化。如果函数是在另一个函数中定义的,那么每次调用外部函数时都会实例化它。使其全局化可确保仅实例化一次。

这是否会对性能产生明显影响取决于实际的程序流程。如果有的话,这样的优化只是有用的,例如,如果要在另一个函数中定义clamp并且在循环中重复调用该函数很多次。