这个"#"在这个Clojure语境中意味着什么?

Min*_*Niu 4 clojure clojurescript om reader

我偶然发现了"examples/mixins"下的官方Om示例,其定义如下:

(def MyComponent (let [obj (om/specify-state-methods! (clj->js om/pure-methods))]
    (aset obj "mixins" #js [TestMixin])
    (js/React.createClass obj)))
Run Code Online (Sandbox Code Playgroud)

"#js"是什么意思?当它以这种方式使用时,我找不到符号"#"的任何Clojure文档.

Die*_*sch 6

Om教程:

#js {...}并且#js [...]被称为读者文字.ClojureScript支持JavaScript的数据文字#js.#js {...}适用于JavaScript对象:

#js {:foo "bar"}  ;; is equivalent to
#js {"foo" "bar"}
Run Code Online (Sandbox Code Playgroud)


Rod*_*ada 6

首先,Om是一个Clojurescript库.Clojure和Clojurescript之间存在一些差异,这里有记录.

#js被称为标记文字,来自edn,基本上标记的文字告诉读者如何解析数据,在#js它告诉读者将数据解析为Javascript对象的情况下.请查看此处了解更多信息.