有没有办法通过实现IDeref在cljs中制作另一个容器,就像它在clojure中一样?
(reify clojure.lang.IDeref
(deref [_] ...))
编译器警告IDeref不是协议
答案 0 :(得分:5)
试试这个:
(def a
(reify IDeref
(-deref [_] "Hello!")))
(.log js/console @a)
输出“你好!”。您可能想要使用deftype:
(deftype LikeAtom []
IDeref
(-deref [_] "Hello!"))
(.log js/console @(LikeAtom.))