js純函式學習筆記(一)

RobinsonZhang發表於2018-12-25

前言

純函式是指同樣的輸入(入參)得到同樣的輸出(返回結果),不依賴與外部環境,同時也不對外部的環境造成影響,比如不會影響入參的物件。

舉例說明

// Pure funs
function square (x){
return x*x;
}
function squareAll(items){
return items.map(square);
}
//Impure funs
function square (x){
//依賴了外部環境
updateXInDatabase(x);
return x*x;
}
function squareAll(items){
for(let i = 0 ; i < items.length ; i ++ ){
// 改變了原來的入參物件
items[i] = square(item[i]);
}
}
複製程式碼

小結

對比 純函式 非純函式
外部依賴 僅依賴入參 可能依賴全域性變數,其他方法或者條件
輸出 同樣的輸入,一樣的輸出 可能因為不同的情況,得到結果不同
對外影響 不改變原來的入參和環境內的變數等 可能會改變

相關文章