The main difference is structural sharing: I can update a Clojure map with a new value, which will create another map that shares the vast majority of the data with the former map. With plain JavaScript, you'd have to clone your object, update it and freeze it again. In addition Clojure/ClojureScript/mori offer a whole API designed to leverage immutable data structures.
Comments
Can anyone enlighten me to the difference between Clojure-like immutability and Object.freeze()?
The main difference is structural sharing: I can update a Clojure map with a new value, which will create another map that shares the vast majority of the data with the former map. With plain JavaScript, you'd have to clone your object, update it and freeze it again. In addition Clojure/ClojureScript/mori offer a whole API designed to leverage immutable data structures.