“純函數(shù)”這個(gè)概念個(gè)人覺(jué)得適用與所有的語(yǔ)言。
什么是純函數(shù)今野,純函數(shù)有兩個(gè)重要的標(biāo)準(zhǔn),違反任何一個(gè)都不是純函數(shù)罐农;
1条霜、函數(shù)的返回結(jié)果只依賴(lài)于它傳入的參數(shù)。
2涵亏、函數(shù)執(zhí)行過(guò)程里面沒(méi)有副作用宰睡。
例如:
const fun = (a, b) => a + b;
返回就是a加b的和,符合以上兩個(gè)標(biāo)準(zhǔn)气筋,返回結(jié)果永遠(yuǎn)是可預(yù)料的拆内,程序運(yùn)行中不會(huì)有副作用
再例如:
const obj = {};
const fun = (obj,b) =>{
obj._age = 18;
return obj._age +b;
}
這個(gè)雖然返回永遠(yuǎn)是18+b,但是有副作用宠默,修改或者新增了obj這個(gè)對(duì)象的_age屬性值麸恍,有無(wú)法預(yù)估的影響。
總結(jié):
1搀矫、純函數(shù)很?chē)?yán)格抹沪,也就是說(shuō)你幾乎除了計(jì)算數(shù)據(jù)以外什么都不能干刻肄,計(jì)算的時(shí)候還不能依賴(lài)除了函數(shù)參數(shù)以外的數(shù)據(jù)。
2采够、一個(gè)函數(shù)的返回結(jié)果只依賴(lài)于它的參數(shù)肄方,并且在執(zhí)行過(guò)程里面沒(méi)有副作用,我們就把這個(gè)函數(shù)叫做純函數(shù)蹬癌。