Хотя я могу превратить простой объект js в объект clojure с помощью чего-то вроде;
(-> "{a: 2, b: 3}" js* js->clj)
Очевидно, я не могу сделать это с конкретным объектом goog.events.BrowserEvent
в функции-обработчике, например:
(defn handle-click [e]
...
(-> e .-evt js->clj keys) ;; <-------------
...
Функция применяется, но результирующий объект не отвечает на функции последовательности, такие как count
или first
, хотя я могу получать элементы, используя aget
. Сообщение об ошибке, которое я получаю в консоли Chrome, такое:
Uncaught Error: No protocol
method ISeqable.-seq defined for type object: [object Object]
Почему это происходит? Разве js->clj
не должно работать со всеми объектами?
Как я могу это исправить?
Спасибо!