2

我在 clojurescript 中找到了一个结果,其中 aset 被链接:

(def data (js-obj))
(-> data 
    (aset "a" "a")
    (aset "b" "b"))

(aget data "a") ;=> "a"
(aget data "b") ;=> 'returns nothing'

然而

(-> 1 inc dec) ;=> returns 1, which is fine
4

2 回答 2

6

Ankur 关于为什么会发生这种情况是正确的。要“解决”它,您应该使用更具语义描述性的:

(doto data
      (aset "a" "a")
      (aset "b" "b"))
于 2012-06-01T18:10:02.033 回答
5

aset返回插入的元素而不是数组对象本身,因此在“b”的情况下,data不会从先前的“a”调用中线程到它。

于 2012-06-01T09:32:43.723 回答