如果你查看 Clojure 中 {{defrecord}} 的文档字符串并与 ClojureScript 进行比较,你会发现 ClojureScript 没有提到 {{__hash}} 是一个保留字段名。
应该提到这一点,因为它是 ClojureScript 中 {{defrecord}} 实现的内部使用。
此外,虽然 Clojure 中的 {{__hasheq}} 是保留的,但似乎没有理由在 ClojureScript 中也表明它被保留。(相关的 Clojure 提交是 https://github.com/clojure/clojure/commit/a1c3dafec01ab02fb10d91f98b9ffd3241e860c0)
另外,在 Clojure 和 ClojureScript 中,将文档说明为为 {{defrecord}} 保留的字段也以这种方式文档化 {{deftype}}。这对我来说并不明显,所以在我看来,这是一个开放性问题,即是否应该将 {{__hash}} 作为保留字段在 ClojureScript 的 {{deftype}} 文档字符串中说明。