純粹的功能

純功能是獨立的,沒有副作用。給定相同的輸入集,純函式將始終返回相同的輸出值。

以下功能是純粹的:

function pure(data) {
    return data.total + 3;
}

但是,此函式不純,因為它修改了外部變數:

function impure(data) {
    data.total += 3;
    return data.total;
}

例:

data = {
    total: 6
};

pure(data);   // outputs: 9
impure(data); // outputs: 9 (but now data.total has changed)
impure(data); // outputs: 12