我已经定义了一个列出类型
的函数(defn js-type [o]
(let [ty (type o)
ty (if (and ty (.-cljs$lang$type ty))
(.-cljs$lang$ctorStr ty)
(js/goog.typeOf o))]
ty))
使用
(js-type (keys {:a 1})) ;=> "cljs.core/KeySeq"
我想在clojurescript中有一个列出所有协议的函数
(js-protocols (keys {:a 1})) ;=> [Object, IMeta, IWithMeta .... INext ]
KeySeq的所有协议都在这里:https://github.com/clojure/clojurescript/blob/master/src/cljs/cljs/core.cljs#L5881-L5932
答案 0 :(得分:2)
这是运行时不存在的另一个反射工具。您可以通过查看cljs.analyzer/namespaces
的内容或直接通过ClojureScript分析器/编译器通过宏获取此信息。