Clojure 我应该使用e.target.value访问属性吗?
中描述了访问clojurescript属性的官方和受支持的语法。例如:Clojure 我应该使用e.target.value访问属性吗?,clojure,clojurescript,Clojure,Clojurescript,中描述了访问clojurescript属性的官方和受支持的语法。例如: (.-myprop obj) 然而,我看到一些代码使用这个 (defn get1 [my] my.e.target.value) …它还成功编译为普通和简单的属性访问。就像“官方”版本一样: (defn get2 [my] (.. my -e -target -value)) 我可以/应该用它吗?(我更喜欢前一种语法) 我可以想到的一个缺点是语义不同,代码分析工具可能无法工作。您应该使用点运算符和变体来访问
(.-myprop obj)
然而,我看到一些代码使用这个
(defn get1 [my]
my.e.target.value)
…它还成功编译为普通和简单的属性访问。就像“官方”版本一样:
(defn get2 [my]
(.. my -e -target -value))
我可以/应该用它吗?(我更喜欢前一种语法)
我可以想到的一个缺点是语义不同,代码分析工具可能无法工作。您应该使用点运算符和变体来访问Js interop,因为它是惯用的方式,并且允许您区分属性访问和函数调用,而您不需要使用/ 该语法用于访问命名空间值(如
js/Array
,closure.string/split
,sample.until/inspect
),不应用于互操作目的。通过:
David Nolen的评论说,它将保留并得到支持,因此可以安全使用