記憶(或「記憶化」)是一種最佳化技術,可以快取繁重或耗時的函數的結果,以便將來使用相同參數的呼叫速度更快。記憶在純函數中特別有用,因為同一組輸入總是產生相同的結果。
記憶是如何運作的?
當第一次使用某些參數呼叫記憶的函數時,它會執行計算並將結果儲存在快取中。後續呼叫相同參數時,函數會直接從快取中傳回結果,避免重複計算。
基本記憶實現
function memoize(fn) { const cache = {}; return function(...args) { const key = JSON.stringify(args); // Cria uma chave única para os argumentos if (cache[key]) { console.log("Resultado em cache"); return cache[key]; // Retorna o valor armazenado no cache } const result = fn(...args); // Calcula o valor cache[key] = result; // Armazena o resultado no cache return result; }; }
使用範例:
function factorial(n) { if (n <= 1) return 1; return n * factorial(n - 1); } const memoizedFactorial = memoize(factorial); console.log(memoizedFactorial(5)); // Calcula e armazena em cache console.log(memoizedFactorial(5)); // Recupera do cache
記憶的好處
總結
JavaScript 中的記憶是一種強大的技術,可以提高程式碼效率並加速重複性、計算量大的操作的效能。
以上是JavaScript 中的記憶的詳細內容。更多資訊請關注PHP中文網其他相關文章!