如何从ClojureScript引用JavaScript中的this关键字?

10

我正在将一些ClojureScript代码与一个需要回调函数的JS库调用集成在一起。该JS库使用JavaScript的"this"关键字向回调传递数据。

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

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

在ClojureScript中,是否有一种方法可以获取“this”上下文,而无需使用js *?

1个回答

20
使用内置的 this-as 宏。它接收一个名称和一个函数体,将该名称绑定到 JavaScript 的 this 并评估该函数体。
例如:
(libraryCall (fn [] (this-as my-this (.log js/console my-this))))

好问题...我不得不深入编译器代码来找到它,这个特性并没有很好地被广告。

我会把它添加到书中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接