Ответ 1
Эта одна из форм для clojurescript interop.
Самый простой -
(.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]
Прочитайте этот хороший пост, чтобы узнать больше о interop-формах clojurescript javascript: http://www.spacjer.com/blog/2014/09/12/clojurescript-javascript-interop/