1 function mulity(x){ 2 return x*x; 3 } 4 function memorize(f){ 5 var cache = {}; 6 var key = arguments.length + Array.prototype.join.call(arguments,",");//参数长度和参数作为属性 7 if(key in cache) 8 return cache[key]; 9 else 10 return cache[key] = f.apply(this,arguments); 11 }; 12 13 function Test(){ 14 var t = memorize(mulity); 15 var k =t(6);//第一次是直接算 16 var k2 =t(6);//第二次是调用缓存 17 alert(k2); 18 }
缓存函数是把计算的结果,存在函数中,当再次调用的时候就可以直接调用,这种方法就是用空间来换取时间
时间: 2024-10-09 19:59:22