> I am trying to write a CLJS (0df1bc4d7b) function that finds out the
> current system time in milliseconds, equivalent of (System/
> currentTimeMillis) in Clojure:
>
> (ns foo)
>
> (defn now []
>  ;; new Date().getTime()
>  (.getTime (js/Date.)))
>
>
> This displays the following when displayed using JavaScript
> alert("Found " + foo.now()):
>
> Found function getTime() {
>    [native code]
> }
>
>
> When I wrap into a function call
> (defn now []
>  ;; new Date().getTime()
>  ((.getTime (js/Date.))))
>
> I see the exception in Firebug: "Can't convert null to object" while
> executing the following code:
> return(new Date).getTime.call(null)
>
> What am I doing wrong?

.getTime is a method which takes no arguments. In JavaScript (and by
extension ClojureScript) instance methods are also properties.

So in your case, (.getTime (js/Date.)) actually returns the value of
the method (the native code) instead of calling it.

If you wish to call .getTime instead, you'll have to invoke it thusly
- (. (js/Date.) (getTime))

Also note that this problem has been fixed in a very recent commit
with the introduction of a new property lookup syntax -
http://dev.clojure.org/display/design/Unified+ClojureScript+and+Clojure+field+access+syntax

Hope this helps.

Regards,
BG

-- 
Baishampayan Ghose
b.ghose at gmail.com

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to