国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

24-函數(shù)緩存以及應(yīng)用場景

這篇具有很好參考價值的文章主要介紹了24-函數(shù)緩存以及應(yīng)用場景。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、是什么

函數(shù)緩存,就是將函數(shù)運算過的結(jié)果進(jìn)行緩存

本質(zhì)上就是用空間(緩存存儲)換時間(計算過程)。


常用于緩存數(shù)據(jù)計算結(jié)果和緩存對象

const add = (a,b)=> a+b;
const calc = memoize(add);// 函數(shù)緩存
calc(1,2)

緩存只是一個臨時的數(shù)據(jù)存儲,它保存數(shù)據(jù),以便將來對該數(shù)據(jù)的請求能夠更快地得到處理

二、如何實現(xiàn)

實現(xiàn)函數(shù)緩存主要依靠閉包、柯里化、高階函數(shù)

閉包

閉包可以理解成,函數(shù) + 函數(shù)體內(nèi)可訪問的變量總和

(function(){
 var a = 1;
 function add(){
 	const b = 2;
 	let sum = b + a
 	console.log(sum);
 }
 add()
})()

add函數(shù)本身,以及其內(nèi)部可訪問的變量,即 a = 1,這兩個組合在?起就形成了閉包

柯里化

把接收多個參數(shù)的函數(shù)轉(zhuǎn)換成接收單一參數(shù)的函數(shù)

// 非柯里化
var add = function (x,y){
	return x+y;
}
add(3,1)
// 柯里化
var add2 = function (x){
	// 返回函數(shù)
	return function (y){
		return x + y
	}
}
add2(3)(1)

高階函數(shù)

通過接收其他函數(shù)作為參數(shù)或返回其他函數(shù)的函數(shù)

function foo(){
	var a = 2;
	function bar(){
		console.log(a);
	}
	return bar;
}
var baz = foo();
baz();

三、應(yīng)用場景

雖然使用緩存效率是非常高的,但并不是所有場景都適用,因此千萬不要極端的將所有函數(shù)都添加緩存

以下幾種情況下,適合使用緩存文章來源地址http://www.zghlxwxcb.cn/news/detail-525885.html

  • 對于昂貴的函數(shù)調(diào)用,執(zhí)行復(fù)雜計算的函數(shù)
  • 對于具有有限且高度重復(fù)輸入范圍的函數(shù)
  • 對于具有重復(fù)輸入值的遞歸函數(shù)
  • 對于純函數(shù),即每次使用特定輸入調(diào)用時返回相同輸出的函數(shù)

到了這里,關(guān)于24-函數(shù)緩存以及應(yīng)用場景的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包