不可变数据(Immutable Data)
Facebook 工程师 Lee Byron 花费 3 年时间打造了 Immutable.js,这个库深受 Clojure、Scala、Haskell 等函数式编程语言的影响。它提供了使用纯 JavaScript 实现不可变数据的解决方案。
应当视不可变集合为值而非对象。“对象”描述的事物是会随着时间变化的,“值”则明确地代表了该事物在某时刻的确切状态。
——Immutable.js 官网[1]
Immutable.js 内部使用了 trie 数据结构来存储数据,只要两个对象的 hashCode 相等
参考资料
- Immutable.js 官网. https://facebook.github.io/immutable-js/
- Immutable 详解及 React 中实践. https://segmentfault.com/a/1190000003910357