问题
I want to use google maps api v3, and it needs me to instantiate google.maps.LatLng
. Using clojurescript
this is what I do:
(ns foocljs.core)
(LatLng. (.-maps js/google) 100 100)
I got an error undefined is not a function
, this is the culprit:
new foocljs.core.LatLng(foocljs.core.google.maps, // ... another args
I'm guessing this is because the compiler think that LatLng.
is clojure namespaced class. How to deal with this? Thanks.
回答1:
Using js/a.b.c.d is a bad practice and is likely to break in future versions of the compiler (because it is not a clojure compatible version of interop from what I know)
The good way would be:
(def LatLng (.. js/google -maps -LatLng))
(LatLng. 100 100)
回答2:
Silly me, I can just do this:
(js/google.maps.LatLng. 100 100)
来源:https://stackoverflow.com/questions/23651607/instantiate-namespaced-javascript-class