我正在使用Om,我没有完全理解以下表达式:
(.. e -target -checked)
Run Code Online (Sandbox Code Playgroud)
这里,"e"是一个javascript事件,如果我理解的话,"-target -checked"是一种访问属性的方法.但是一开始的两个点怎么样?
Joa*_*uin 29
这是clojurescript互操作的形式之一.
最基本的是
(.method object) ; Equivalent to object.method()
(.-property object) ; Equivalent to object[property]
Run Code Online (Sandbox Code Playgroud)
为了访问多个嵌套属性,..操作符有一个快捷方式,以便您可以执行以下操作:
(.. object -property -property method)
(.. object -property -property -property)
Run Code Online (Sandbox Code Playgroud)
代替:
(.method (.-property (.-property object)))
(.-property (.-property (.-property object)))
Run Code Online (Sandbox Code Playgroud)
并且代码导致更清晰,更易读的表达.正如您所看到的,并行是表单与普通的互操作相同但没有点,因此属性访问变为-prop,方法调用变为method(无点).
上面的那些表单等同于这个JS表单:
object[property][property][method]()
object[property][property][property]
Run Code Online (Sandbox Code Playgroud)
阅读这篇好文章,了解有关clojurescript的javascript互操作形式的更多信息:http: //www.spacjer.com/blog/2014/09/12/clojurescript-javascript-interop/
| 归档时间: |
|
| 查看次数: |
2541 次 |
| 最近记录: |