Я хотел бы иметь возможность использовать (js-obj)
как хэш-карту, чтобы
(def a (js* "{'a': 1, 'b':2}"))
(a :a)
;=> 1
Я пытался сделать это:
(extend-type object
IFn
(-invoke
([o k] (aget o (strkey k))))
но это не сработало.
Я хотел бы иметь возможность использовать (js-obj)
как хэш-карту, чтобы
(def a (js* "{'a': 1, 'b':2}"))
(a :a)
;=> 1
Я пытался сделать это:
(extend-type object
IFn
(-invoke
([o k] (aget o (strkey k))))
но это не сработало.
Вы можете использовать use reify
. Обратите внимание, что это означает, что вы не сможете получить доступ к свойствам напрямую:
(defn convert [obj]
(reify
IFn
(-invoke [obj]
([o k] (aget o (strkey k))))))
Конечно, вы можете написать протокол, чтобы иметь доступ к исходному объекту, если хотите.
js/Object
вместоobject
? - person Rodrigo Taboada   schedule 09.05.2013