Altyazı belgelerine bakarak ve daha sık kullanılan işlevlerin kendi sürümlerimi yazmaya çalışırken, işlevsel programlama hakkında daha fazla bilgi edinmeye çalıştım.Altyazı ve lodash'ta "memoise" işlevinin uygulanması ve anlaşılması
"Memoize" ile karşılaşıyorum - kafamın etrafına dolanmakta zorluk çekiyordum ve Crockford'un 'The Good Parts' bölümünden bazı bilgiler buldum.
_.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;
};
sen .apply kullanımım bile gerekli olmadığını anlamama yardım ve misiniz ben bu koda yapabilirsiniz herhangi çekirdek iyileşme olmazsa? Yardımın için minnettarım!
Evet, uygulamanızın yararı vardır, çünkü func'in kaç argümanının –
koduna sahip olacağının farkında değilsiniz. Ve anlamadığın bir şey yok mu? Ya da altyazının hangi kısımlarını anlamıyorsun? – Bergi
@Bergi - Bu çözüme ulaşabildim, ancak yapabileceğim herhangi bir hata veya iyileştirme olup olmadığını görmek istedim. Aşağıda bahsettiğim gibi, o zamandan beri tipolojinin kullanımını değiştirdim ve bunun yerine hasOwnProperty'ye güveniyorum. Ancak, anımsanan fonksiyonun ihtiyaç duyulandan daha fazla çalışmasını nasıl engelleyebileceğimi anlamaya çalışıyorum. – tsaiDavid