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。
這是文章的子討論串,你可以回到上層查看所有討論和文章