There's no question that it's allowed. You can use js/a.b.c However, it is *less idiomatic* because there's no analogous construct in Clojure (not ClojureScript) code. In Clojure, a symbol referencing a var in a namespace will only ever have a name part without dots.
The fact that the CLJS-445 patch to warn on dotted name parts of "js/name" constructs was initially accepted by Nolan in the first place is itself evidence that this construct is less idiomatic. Either way it's not a big deal. No one is going to get too upset if you use js/a.b.c instead of (.. js/a -b -c) On Friday, August 29, 2014 12:37:32 PM UTC-5, Rafal Spacjer wrote: > On the other hand, I've found this JIRA bug: > http://dev.clojure.org/jira/browse/CLJS-455 > > > > with the comment of David Nolen: > > "This patch creates issues around using constructors provided by libraries > outside ClojureScript and GClosure. Also from Rich's original commit support > js prefix, it seems like JS style access after the / was actually intended" > > > > so maybe using dots after js/ is allowed > > > > W dniu piątek, 29 sierpnia 2014 07:09:36 UTC+2 użytkownik Rafal Spacjer > napisał: > > > Sounds good, thank you. Of course I agree, that using dots (like in > > "(js/console.log x)") is faster to write. > > > > > > > > > > > > W dniu czwartek, 28 sierpnia 2014 23:45:55 UTC+2 użytkownik Francis Avila > > napisał: > > > > > > > Avoid dots in the name part of symbols. "js/a.b.c" works to reference > > > "a.b.c" by value (i.e. without calling it), but it's not idiomatic. > > > Prefer (.. js/a -b -c), or using your examples: > > > > > > > > > > > > > > (.. js/Foo -Bar -Foo2 -myProperty) > > > > > > > (.. js/Foo -Bar -Foo2 myMethod) > > > > > > > > > > > > > > The "js" pseudo-namespace is special because it emits the symbol as > > > normal js property access, but if it were a *real* namespace there would > > > be no dotted symbols in it. (That said, I cheat all the time e.g. with > > > "(js/console.log x)".) > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Thursday, August 28, 2014 3:22:53 PM UTC-5, Rafal Spacjer wrote: > > > > > > > > Hello, > > > > > > > > > > > > > > > > I' curious what is a preferable way of accessing properties or methods > > > > in nested JavaScript "namespaces". > > > > > > > > > > > > > > > > Lets assume that external library define such property: > > > > > > > > > > > > > > > > Foo.Bar.Foo2.myProperty in global namespace. > > > > > > > > > > > > > > > > what is idiomatic way of accessing 'myProperty': > > > > > > > > > > > > > > > > (.-myProperty js/Foo.Bar.Foo2) > > > > > > > > > > > > > > > > or > > > > > > > > > > > > > > > > (.. js/Foo -Bar -Foo2 -myProperty) > > > > > > > > > > > > > > > > Same question for a method, if we have such statement: > > > > > > > > > > > > > > > > Foo.Bar.Foo2.myMethod(); > > > > > > > > > > > > > > > > how should we invoke 'myMethod'? Is this correct: (.myMethod > > > > js/Foo.Bar.Foo2) ? -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojurescript+unsubscr...@googlegroups.com. To post to this group, send email to clojurescript@googlegroups.com. Visit this group at http://groups.google.com/group/clojurescript.