関数型プログラミングの詳細については、アンダースコアのドキュメントを参照し、より頻繁に使用される関数の独自のバージョンを作成しようとしました。"memoize"関数の実装と理解
"memoize"に出くわす - 私は頭の中で頭を折るのに問題があり、Crockfordの 'The Good Parts'でいくつかの情報を見つけました。
_.memoize = function(func) {
// 'cache' object is used to hold the result of the memoized fn's call
var cache = {};
var recur = function(n) {
var result = cache[n];
if (typeof result === 'undefined') {
result = func.apply(this, arguments);
cache[n] = result;
}
return result;
}
return recur;
};
あなたは.applyの私の使用も必要だったなら、私は理解して助けてください可能性があり、任意のコアの改善があった場合、私は、このコードにすることができますか?本当に助けに感謝!
はい、funcに何個の引数があるのか分からないので、applyの使用が必要です –
これはあなた自身で書いたコードなのですか?あなたはそれについて理解していないことは何もありません。またはアンダースコアのどの部分を理解していないのですか? – Bergi
@Bergi - 私はこの解決策に到達することができましたが、私ができるエラーや改善があるかどうかを見たいと思っていました。私が下で述べたように、私はtypeofの使用を変更し、代わりにhasOwnPropertyに依存しています。しかし、私はメモ帳機能が必要以上に実行されるのを防ぐ方法を見つけようとしています。 – tsaiDavid