我有一些代码在cljc文件中,可以编译成Clojure和ClojureScript。
在protocols.cljc中。
(defprotocol Transformable ".."
(scale [this scalar] "" ) ...)
在 pattern.cljc 中
(defrecord APattern [paths]
Transformable
(scale [this s] (...)) ...)
在另一个.cljc文件中
(defn f [pattern] (.scale pattern (/ 1 2)) )
在 core.cljs 文件中
(another/f pattern)
然而,我在浏览器控制台上遇到了一个错误
TypeError: pattern.scale is not a function
在core.cljs中检查模式对象的字段(使用js-keys)可以看到该对象具有称为的内容
"patterning$protocols$Transformable$scale$arity$2"
这看起来像是我的函数。那么我在ClojureScript中访问它时是否做错了什么?点号表示法不起作用吗?我需要做些其他的事情吗?