純粹的功能
純功能是獨立的,沒有副作用。給定相同的輸入集,純函式將始終返回相同的輸出值。
以下功能是純粹的:
-js langCopyfunction pure(data) {
return data.total + 3;
}
但是,此函式不純,因為它修改了外部變數:
-js langCopyfunction impure(data) {
data.total += 3;
return data.total;
}
例:
-js langCopydata = {
total: 6
};
pure(data); // outputs: 9
impure(data); // outputs: 9 (but now data.total has changed)
impure(data); // outputs: 12