我正在查看一些代码并看过这些评论,如何将功能提升为全局帮助提高性能?
// 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;
}
答案 0 :(得分:2)
因为函数只有在进入范围时才会被实例化。如果函数是在另一个函数中定义的,那么每次调用外部函数时都会实例化它。使其全局化可确保仅实例化一次。
这是否会对性能产生明显影响取决于实际的程序流程。如果有的话,这样的优化只是有用的,例如,如果要在另一个函数中定义clamp
并且在循环中重复调用该函数很多次。