如何在ClojureScript中创建一个可解引用对象(IDerefable)?

4
有没有办法在cljs中实现类似于clojure中通过实现IDeref来创建另一个容器的方法?
(reify clojure.lang.IDeref
     (deref [_] ...))

编译器警告IDeref不是协议

1个回答

6

试试这个:

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

(.log js/console @a)

输出 "Hello!"。您可能希望使用 deftype:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接