对固定的计算,做缓存处理,比如计算乘积;
var mult = (function() {
var cache = {};
var calculate = function() {
var a = 1;
for(var i = 0, l = arguments.length; i<l;i++){
a = a * arguments[i];
}
return a;
}
return function() {
var args = Array.prototype.join.call( arguments , ',');
if( args in cache) {
return cache[args];
}
return cache[args] = calculate.apply(null, arguments);
}
})()
mult(1,4,23) //第一次计算
mult(1,4,23) //第二次拿缓存