純函數(shù)的特點:
- 對于同一參數(shù)外莲,返回同一結(jié)果
var squareNumber = memoize(function(x) {
return x * x;
});
squareNumber(4);
//=> 16
squareNumber(4); // returns cache for input 4
//=> 16
squareNumber(5);
//=> 25
squareNumber(5); // returns cache for input 5
//=> 25
- 結(jié)果完全取決于傳入的參數(shù)
- 不產(chǎn)生副作用
函數(shù)副作用是指函數(shù)在正常工作任務(wù)之外對外部環(huán)境所施加的影響匈子。
函數(shù)副作用是指函數(shù)被調(diào)用路召,完成了函數(shù)既定的計算任務(wù),但同時因為訪問了外部數(shù)據(jù)栋烤,尤其是因為對外部數(shù)據(jù)進行了寫操作谒养,從而一定程度地改變了系統(tǒng)環(huán)境。
函數(shù)的副作用也有可能是發(fā)生在函數(shù)運行期間明郭,由于對外部數(shù)據(jù)的改變买窟,導(dǎo)致了同步運行的外部函數(shù)受到影響。