(this-as name & body)
Defines a scope where JavaScript's implicit "this" is bound to the name provided.
(core/defmacro this-as [name & body] `(let [~name (js-this)] ~@body))