我应该使用e.target.value来访问属性吗?

时间:2014-02-17 16:26:26

标签: clojure clojurescript

http://dev.clojure.org/jira/browse/CLJS-89中描述了访问clojurescript属性的官方和支持语法。例如:

(.-myprop obj)

但是,我看到一些代码使用了这个......

(defn get1 [my]
   my.e.target.value)

...也成功编译成普通&简单的财产访问。就像“官方”版本一样:

(defn get2 [my]
   (.. my -e -target -value))

可以/我应该使用它吗? (我更喜欢以前的语法)

我能想到的一个缺点是语义不同,代码分析工具可能不起作用。

2 个答案:

答案 0 :(得分:1)

您应该使用点运算符和变量来访问Js互操作,因为它是惯用的方式,并且它还允许您区分属性访问和函数调用,而不是/。

该语法用于访问命名空间值(例如js/Arrayclosure.string/splitsample.until/inspect),不应将其用于互操作目的。

答案 1 :(得分:1)

通过:

js/console.log in ClojureScript

大卫·诺伦的评论说,它会保留并得到支持,因此可以安全使用。