popcorny 積分 2 編輯於

side effect就是改變外面的狀態就是side effect,例如counter++就是side effect。所以以下的increase function就是有side-effect

var myObject = {
    counter: 0,
    increase: function() {
        this.counter++;
    }
}

因為他改變了counter的值了。而no side-effect的版本是

function addOne(counter)  {
    return counter + 1;
}
而redux做的事情是
state = reducer(state);

所以這個assignment是做redux裡面,而非reducer。

事實上在functional language中,assignment is evil XD。所以他們才那麼不同意Imperative programming style。

這是文章的子討論串,你可以回到上層查看所有討論和文章