摘要: js中的对象是那么美妙:我们可以随意复制他们,改变并删除他们的某项属性等。但是要记住一句话: “伴随着特权,随之而来的是更大的责任。” (With great power comes great responsibility)
JS中的对象是那么美妙:我们可以随意复制他们,改变并删除他们的某项属性等。但是要记住一句话:
的确,JS Objects里概念太多了,我们切不可随意使用对象。下面,我就从基本对象说起,聊一聊不可变数据和JS的一切。
可变和共享是万恶之源
不可变数据其实是函数式编程相关的重要概念。相对的,函数式编程中认为可变性是万恶之源。但是,为什么会有这样的结论呢?
这个问题可能很多程序员都会有。其实,如果你的代码逻辑可变,这并不是“政治错误”的。比如JS中的数组操作,很对都会对原数组进行直接改变,这当然并没有什么问题。比如:
这是我们常用的“删除数组某一项”的操作。好吧,他一点问题也没有。
问题其实出现在“滥用”可变性上,这样会给你的程序带来“副作用”。先不必关心什么是“副作用”,他又是一个函数式编程的概念。