Бих искал да мога да използвам (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