函數(shù)記憶
函數(shù)可以將先前操作的結(jié)果記錄在某個對象里,從而避免重復的運算,這種優(yōu)化被稱為記憶。
我們可以編寫一個函數(shù)來幫助我們構(gòu)造帶記憶功能的函數(shù), 例如:
function memoizer(fun, memo) {
var memo = memo || {};
return function(n) {
var ret = memo[n];
if (typeof ret === "undefined") {
ret = fun(n);
memo[n] = ret;
}
return ret;
}
}
var fibonacci = memoizer(function(n) {
return fibonacci(n-1) + fibonacci(n-2)
}, [0, 1]);
計算一個初始數(shù)字為0、1的Fibonacci數(shù)列, 使用函數(shù)記憶的方法可以減少運算量。
參考《JavaScript語言精粹》第四章
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
