10

我正在将一些 ClojureScript 代码与带有回调函数的 JS 库调用集成。JS 库使用 JavsScript 的“this”关键字将数据传递给回调。

我可以使用 (js* "this") 让它工作。例如:

(libraryCall (fn [] (.log console (js* "this"))))

有没有办法从 ClojureScript 中获取“this”上下文而不求助于 js*?

4

1 回答 1

20

使用内置this-as宏。它接受一个名称和一个主体,并评估名称绑定到 JavaScript 的主体this

例如

(libraryCall (fn [] (this-as my-this (.log js/console my-this))))

好问题...必须深入研究编译器代码才能找到它,它根本没有很好的宣传。

我会把它加到书里。

于 2012-09-07T15:54:54.900 回答