其中,fn是要执行的函数,resolver是产生key,ng-book书上的截图,是不是这个函数有问题?
自己写了一个,并做了测试,是可以的,代码如下:
function memoize(fn,resolver){
var cache = arguments.callee.cache = arguments.callee.cache || {};
var key = resolver ?
resolver() : new Date();
return this.hasOwnProperty.call(cache,key)?
cache[key]: (cache[key] = fn());
}
//test
var result01 = memoize(
function () {
return 'value0';
},
function(){
return 'key0';
}
);
var result02 = memoize(
function () {
return 'value1';
},
function(){
return 'key0';
}
);
console.log('result01 = ' + result01)
console.log('result02 = ' + result02)
那么现在的问题是:如果fn和resolver函数需要传入参数,那么如何是好?