例:
var Flower= function(){
var t=0,i=0;
for(;it ;
}
return t;
flower は t の値を返します
この関数には 2 ~ 3 秒かかると仮定します。
メモ化関数を通じて、同じ値を再度検索する場合、事前にキャッシュされた値が直接取得され、すぐに返されます。
メモ化関数
var Memoize = function(fn, cache, refetch, obj){
cache = キャッシュ|| {};/ /結果をキャッシュするために使用されます
return function(){
var k = argument[1] Array.prototype.join.call(arguments, '__') : argument[0]; //複数のパラメータ '__' で区切られます
if (!(k in キャッシュ) || (refetch &&cache[k] == refetch)) { //キャッシュ リストに存在せず、指定された再フェッチ値、 Re-operate
cache[k] = fn.apply(obj || fn, argument) //obj パラメーターを使用してこのポインターを変更できます
}
return queue[k] ];//結果を返します
}
}
デモ: