虽然我可以将一个简单的 js 对象变成一个 clojure 对象,例如;
(-> "{a: 2, b: 3}" js* js->clj)
我显然无法goog.events.BrowserEvent
在处理程序函数中对特定对象执行此操作,例如:
(defn handle-click [e]
...
(-> e .-evt js->clj keys) ;; <-------------
...
该函数确实被应用了,但是生成的对象不响应像count
or之类的序列函数first
,尽管我可以使用aget
. 我在 chrome 的控制台中收到的错误消息是;
Uncaught Error: No protocol
method ISeqable.-seq defined for type object: [object Object]
为什么会这样?不应该js->clj
与所有对象一起工作吗?
我怎样才能解决这个问题?
谢谢!