我将一些ClojureScript代码与一个带有回调函数的JS库调用集成在一起。 JS库使用JavsScript"这个"将数据传递给回调。关键字。
我可以使用它来工作(js *"这个")。例如:
(libraryCall (fn [] (.log console (js* "this"))))
有没有办法进入"这个"来自ClojureScript的上下文而不依赖于js *?
答案 0 :(得分:16)
使用内置的this-as
宏。它需要一个名称和一个正文,并使用绑定到JavaScript this
的名称来评估正文。
e.g。
(libraryCall (fn [] (this-as my-this (.log js/console my-this))))
很棒的问题......不得不深入研究编译器代码才能找到它,它根本没有得到很好的宣传。
我会把它添加到书中。