当我使用[]
时,表达式被编译为cljs.core.PersistentVector.EMPTY
,看起来[]
的所有表达式都映射到同一个对象。
我读过shouldn't use new Array()
。这仍然值得关注吗?
由于我打算在这个数组上调用aset
,每次调用都需要一个新对象。我该怎么做?
答案 0 :(得分:7)
现在ClojureScript中有一个非常简洁的符号。您只需键入#js []
,编译器就会将其视为本机JS数组。也适用于对象,如:#js {:one 1 :two 2}
。这样的东西将编译成裸JS对象。
答案 1 :(得分:4)
除非你正在进行JavaScript互操作,否则你应该只使用持久向量。如果你真的需要制作数组,可以使用(array)
。