如何在clojurescript中创建IDerefable?

时间:2013-11-28 13:54:08

标签: clojure clojurescript

有没有办法通过实现IDeref在cljs中制作另一个容器,就像它在clojure中一样?

(reify clojure.lang.IDeref
     (deref [_] ...))

编译器警告IDeref不是协议

1 个答案:

答案 0 :(得分:5)

试试这个:

(def a
  (reify IDeref
    (-deref [_] "Hello!")))

(.log js/console @a)

输出“你好!”。您可能想要使用deftype:

(deftype LikeAtom []
  IDeref
  (-deref [_] "Hello!"))

(.log js/console @(LikeAtom.))