...
| Code Block |
|---|
(deftype A
ILookup
(-lookup ([o k] (aget s k))
([o k nf] (if (.hasOwnProperty o k) (aget o k) nf)))
;; expands to
(specify (.-prototype A)
ILookup
...)
;; expands to
(specify* (.-prototype A)
ILookup {-lookup {2 (fn [o k] ..)
3 (fn [o k nf] ..)}})
;; and if we want to specify a whole batch
;; we can have the same method instances attached to every object
(let [m2 (fn [o k] ..)
m3 (fn [o k nf] ..)]
(defn specify-alookup! [o]
(specify* o
ILookup {-lookup {2 m2 3 m3}})))
(defn jsonp-callback [osjson-list]
(process (map specify-alookup! osjson-list))) |
Issues
specify* can't-be used with IFn in the current patchset to CLJS-414 as of writing- specify expects to see each method only once, should error when user tries to do
...