var bigFunctionA = function(){ var s = 0; for(var i=0;i<10000;i++){ s += i; } return s; } var bigFunctionB = function(){ var s = "a"; for(var i=0;i<100;i++){ s += i; } return s; } function RandomThrow(s1,s2){ if(Math.random()>0.5){ return s1(); return s2(); } } //只对一个函数进行求值,在计算量比较大的情况下,能明显提高效率; //闭包与延迟求值 RandomThrow(bigFunctionA,bigFunctionB);