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.

Reply via email to