gpt4 book ai didi

clojure - 棘手的 ClojureScript 语法

转载 作者:行者123 更新时间:2023-12-02 14:35:48 26 4
gpt4 key购买 nike

任何人都可以帮助我理解这段代码中发生了什么:

(defn- make-edit-mode-container [widget]
(let [input-container (template/node [:input.editable-edit-mode {:type "text"}])
ghandler (goog.events.KeyHandler. input-container)]
(set! (. input-container -gEditableHandler) ghandler)
;; ...
;; ...
input-container))

据我了解,这里声明了一个私有(private)函数,它接受 widget范围。局部范围变量 input-container是一个节点(实际上是一个 dommy.template 节点),它是一个 HTML <input type="text" class="editable-edit-mode">元素。

我无法理解的是(goog.events.KeyHandler. input-container) (例如 goog.events.Keyhandler 末尾的 dot 正在做什么)。

因此,AFAIU (. input-container -gEditableHandler)是成员(member)访问,但是然后在哪里-gEditableHandler来自,破折号是什么意思?

提前致谢。

最佳答案

(goog.events.KeyHandler. input-container)正在调用 KeyHandler 作为构造函数,因此它等于此 js 代码: new goog.events.KeyHandler(input-container);

(. input-container -gEditableHandler)正在访问该属性 gEditableHandlerinput-container ,之前的 - gEditableHandler向编译器表明它是属性访问而不是方法调用(因为方法调用也具有相同的语法,即 (. obj method) )

关于clojure - 棘手的 ClojureScript 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16936791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com