首页 > ng-book中关于缓存结果的函数,是不是有问题?

ng-book中关于缓存结果的函数,是不是有问题?


其中,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函数需要传入参数,那么如何是好?

【热门文章】
【热门文章】