I’m integrating some ClojureScript code with a JS library call that takes a callback function. The JS library passes data to the callback using JavsScript’s “this” keyword.
I can get it to work using (js* “this”). For example:
(libraryCall (fn [] (.log console (js* "this"))))
Is there a way to get at the “this” context from ClojureScript without resorting to js*?
Use the built-in
this-asmacro. It takes a name and a body, and evaluates the body with the name bound to JavaScriptthis.e.g.
Great question… had to dig into the compiler code to find it, it’s not well advertised at all.
I’ll add it to the book.