clojurescript - Clojurescript:表达式中有两个点

标签 clojurescript

我正在与Om合作,但我不完全理解以下表达式:

 (.. e -target -checked)


在这里,“ e”是一个JavaScript事件,“-target -checked”是一种访问属性的方式,如果我理解得很好的话。但是开头的两个点呢?

最佳答案

这是clojurescript互操作的形式之一。

最基本的是

(.method object) ; Equivalent to object.method()
(.-property object) ; Equivalent to object[property]


为了访问多个嵌套属性,..运算符提供了一个快捷方式,以便您可以执行以下操作:

(.. object -property -property method)
(.. object -property -property -property)


代替:

(.method (.-property (.-property object)))
(.-property (.-property (.-property object)))


并且代码产生了更清晰易读的表达式。如您所见,并行之处在于形式与普通互操作程序相同,但没有点,因此属性访问变为-prop,方法调用变为method(无点)。

上面的那些形式等同于此JS形式:

object[property][property][method]()
object[property][property][property]


阅读此好文章,以了解有关clojurescript的javascript互操作形式的更多信息:http://www.spacjer.com/blog/2014/09/12/clojurescript-javascript-interop/

关于clojurescript - Clojurescript:表达式中有两个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27051352/

相关文章:

twitter-bootstrap-3 - 在 Om 中使用 bootstrap 下拉菜单

namespaces - 引用外部 clojurescript 命名空间

reactjs - 将 ClojureScript 添加到现有代码库

data-structures - 表示无冗余树路径的数据结构

clojure - 如何从本地存储中提取整数并使用 clojurescript 强制转换为整数

javascript - 导出 deftype 方法

clojurescript - 如何在 Clojurescript 中设置嵌套属性值?

clojurescript - 在 ClojureScript 中,如何显示带有 2 个小数的 float ?

clojurescript - 在 re-frame 应用程序中使用 rc-animate 对 antizer 表进行动画处理

clojure - 如何在 ClojureScript 中使用 Spectre?