10
我與嗡工作,我沒有完全理解下面的表達式:Clojurescript:表達兩個點
(.. e -target -checked)
這裏,「E」是一個JavaScript事件,「-target -checked」是如果我理解的很好,就可以訪問屬性。但是,開頭的兩個點呢?
我與嗡工作,我沒有完全理解下面的表達式:Clojurescript:表達兩個點
(.. e -target -checked)
這裏,「E」是一個JavaScript事件,「-target -checked」是如果我理解的很好,就可以訪問屬性。但是,開頭的兩個點呢?
這是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)))
而且代碼的結果是一個更清晰可讀的表達式。正如您所看到的,並行是表單與普通interop相同,但沒有點,所以屬性訪問變爲-prop
,方法調用變爲method
(無點)。上述
這些形式等同於這個JS形式:
object[property][property][method]()
object[property][property][property]
閱讀了這個好帖子,詳細瞭解clojurescript的JavaScript互操作形式:http://www.spacjer.com/blog/2014/09/12/clojurescript-javascript-interop/
從鏈接@joaquin共享,也可以使用形式:'(aget js/object「prop1」「prop2」「prop3」)' – pdoherty926 2014-11-25 18:25:28
我想你是指'object [「property」]'而不是'object [property]'(即前者包含引號)。 – George 2016-03-04 08:35:19