我正在使用Om,但我并未完全理解以下表达式:
(.. e -target -checked)
这里,“e”是一个javascript事件,“-target -checked”是一种访问属性的方法,如果我理解的话。但是一开始的两个点呢?
答案 0 :(得分:26)
这是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/