我对不变性的理解存在一个空洞。我经常听到:
不变性意味着值不变
...但是程序员在建模时实际上如何改变呢?
例如,在用户界面中:
const selectedTab = 'users'
如果用户选择另一个标签,例如'sales'
,该怎么办? selectedTab
应该怎么办?
我认为,关于不变性的描述可能是不正确的,并且不变值可以更改,但是只有在调用函数时,这些值才会更改。例如,标签上的点击处理程序可以执行类似的操作
var selectedTab = 'users'
salesTabElement.on('click', function(event){
...
selectedTab = 'sales'
})
也许还有另一种解释。好像是这样:
不变性是否允许更改值?