我正在与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/