重写_.在下划线库中记忆

rewriting _.memoize in underscore library

本文关键字:记忆 下划线 重写      更新时间:2023-09-26

我正在练习重写_。在下划线库中记忆,并有一些困难,使其正确。我想这样做,这样它将返回一个函数,检查它是否已经计算了给定参数的结果,并返回具有相同参数的调用的存储值。

有人能给一些建议,这使它正常工作?

  _.memoize = function(func) {
    var cache = {}, result;
    var args = Array.prototype.slice.call(arguments);
    return function(){
      if(args in cache) {
        return cache[arg];
      } else {
        return cache[arg] = func.apply(this, arguments)
      };
    }
  };

你有拼写错误,arg应该是args

  _.memoize = function(func) {
    var cache = {}, result;
    var args = Array.prototype.slice.call(arguments);
    return function(){
      if(args in cache) {
        return cache[args];
      } else {
        return cache[args] = func.apply(this, arguments)
      };
    }
  };