当前位置:  开发笔记 > 编程语言 > 正文

Clojurescript`.-name`惯例

如何解决《Clojurescript`.-name`惯例》经验,为你挑选了1个好方法。

我一直在努力学习ClojureScript并偶然发现了一些非常神秘的函数名称.

例如:

(.-length str)

来自om文档:

(defn add-contact [data owner]
  (let [new-contact (-> (om/get-node owner "new-contact")
                        .-value ;;What is this?
                        parse-contact)]
    (when new-contact
      (om/transact! data :contacts #(conj % new-contact)))))

那是什么意思.-



1> Charles Duff..:

这些是检索本机JavaScript属性.因此,(.-length str)将编译到JavaScript str.length.

将此与ClojureScript进行对比(.length str),后者将编译为方法调用str.length()- 这是一个相当不同的事情.


om给定的情况下,代码按顺序执行以下操作:

打电话get-node,并取得结果

value取得那个结果的财产

parse-contact传递具有该值的函数.

这是因为线程宏->将每个阶段的结果替换为下一个阶段的第一个参数 - 使该代码等效于(parse-contact (.-value (om/get-node owner "new-contact"))).

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有