js純函數學習筆記(一)

前言

純函數是指一樣的輸入(入參)獲得一樣的輸出(返回結果),不依賴與外部環境,同時也不對外部的環境形成影響,好比不會影響入參的對象。bash

舉例說明

// 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]);
}
}
複製代碼

小結

對比 純函數 非純函數
外部依賴 僅依賴入參 可能依賴全局變量,其餘方法或者條件
輸出 一樣的輸入,同樣的輸出 可能由於不一樣的狀況,獲得結果不一樣
對外影響 不改變原來的入參和環境內的變量等 可能會改變
相關文章
相關標籤/搜索