Это одна из форм для 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]
Читайте этот хороший пост, чтобы узнать больше о clojurescript годах Javascript Interop формы: http://www.spacjer.com/blog/2014/09/12/clojurescript-javascript-interop/
Из ссылки @joaquin совместно, вы можете также использовать форма: '(aget js/object" prop1 "" prop2 "" prop3 ")' – pdoherty926
Я думаю, вы имеете в виду 'object [" property "]' вместо 'object [property]' (т. е. первые включают в себя кавычки). – George