作为一个新手,对于Clojurescript我发现每个Clojurescript项目都会有类似这样的代码片段:
(extend-type js/NodeList
ISeqable
(-seq [array] (array-seq array 0)))
为什么这部分不是核心库的一部分?
作为一个新手,对于Clojurescript我发现每个Clojurescript项目都会有类似这样的代码片段:
(extend-type js/NodeList
ISeqable
(-seq [array] (array-seq array 0)))
为什么这部分不是核心库的一部分?
你必须意识到ClojureScript是将语言编译成JavaScript,而不仅仅是浏览器JavaScript的编译器。你还可以在其他平台上使用它,比如Node.js或者QT库,这些平台上并不存在像NodeList这样的东西(因为这是Dom api的一部分,而不是标准语言)。
NodeList
创建序列,可以使用array-seq
函数。(array-seq (js/document.querySelectorAll "div"))
在应用了一个补丁 https://clojure.atlassian.net/browse/CLJS-3199 后,ClojureScript 1.10.741 中的 (seq (js/document.querySelectorAll "div"))
现在可以直接使用而无需再进行其他设置。