纯粹的功能

纯功能是独立的,没有副作用。给定相同的输入集,纯函数将始终返回相同的输出值。

以下功能是纯粹的:

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