2015-08-15 50 views
0

我正在練習重寫下劃線庫中的_.memoize,並且遇到了一些困難。我想這樣做,它會返回一個函數,檢查它是否已經計算了給定參數的結果,並返回具有相同參數的調用的存儲值。在下劃線庫中重寫_.memoize

有人可以提供一些建議,使其正常工作?

_.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) 
     }; 
    } 
    }; 

回答

0

你有拼寫錯誤,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) 
     }; 
    } 
    };