2012-06-01 32 views
2

我發現clojurescript結果whon ASET被鏈接:在ASET未鏈在clojurescript

(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 

回答

6

Ankur是正確的,爲什麼會發生這種情況;以「解決」,你應該使用更多的語義描述:

(doto data 
     (aset "a" "a") 
     (aset "b" "b")) 
5

aset返回所插入的元件,而不是陣列對象本身,因此「b」的情況下data沒有通過以前的「a」呼叫連接到它。

+0

是啊...我並沒有考慮正確=)我今天早上我應該用多託的鏈接實現。 – zcaudate