有没有办法在cljs中实现类似于clojure中通过实现IDeref来创建另一个容器的方法?
(reify clojure.lang.IDeref
(deref [_] ...))
编译器警告IDeref不是协议
(reify clojure.lang.IDeref
(deref [_] ...))
编译器警告IDeref不是协议
试试这个:
(def a
(reify IDeref
(-deref [_] "Hello!")))
(.log js/console @a)
输出 "Hello!"。您可能希望使用 deftype:
(deftype LikeAtom []
IDeref
(-deref [_] "Hello!"))
(.log js/console @(LikeAtom.))