Questa è una delle maschere per l'interlo clojurescript.
Il più fondamentale è
(.method object) ; Equivalent to object.method()
(.-property object) ; Equivalent to object[property]
Per accedere a diverse proprietà nidificati, c'è una scorciatoia con l'operatore ..
, in modo che si può fare:
(.. object -property -property method)
(.. object -property -property -property)
Invece di:
(.method (.-property (.-property object)))
(.-property (.-property (.-property object)))
E il codice risulta in un'espressione più leggibile. Come puoi vedere, il parallelo è che la forma è la stessa dell'interop normale ma senza il punto, quindi l'accesso alla proprietà diventa -prop
e le chiamate al metodo diventano method
(nessun punto).
Quelle forme di cui sopra sono equivalenti al presente JS forme:
object[property][property][method]()
object[property][property][property]
documentarsi questo buon posto per conoscere meglio ClojureScript di javascript forme di interoperabilità: http://www.spacjer.com/blog/2014/09/12/clojurescript-javascript-interop/
Dal link @joaquin condiviso, è possibile anche utilizzare la forma: '(aget js/object" prop1 "" prop2 "" prop3 ")' – pdoherty926
Penso che tu intenda 'oggetto [" proprietà "]' invece di 'oggetto [proprietà]' (cioè, il primo include virgolette). – George