javascript - ng-book中关于缓存结果的函数,是不是有问题?
大家讲道理
大家讲道理 2017-04-10 17:54:10
[JavaScript讨论组]


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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号