任何人都可以帮助我理解,这段代码中发生了什么:
(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))
据我所知,这里声明了一个私有函数,它接受widget
参数。局部范围变量input-container
是一个节点(实际上它是dommy.template
节点),它是一个HTML <input type="text" class="editable-edit-mode">
元素。
我无法理解的是(goog.events.KeyHandler. input-container)
(例如,goog.events.Keyhandler
末尾的点是什么)。
因此,AFAIU (. input-container -gEditableHandler)
是会员访问权限,但是-gEditableHandler
来自哪里,破折号是什么意思?
提前致谢。
答案 0 :(得分:8)
(goog.events.KeyHandler. input-container)
正在调用KeyHandler作为构造函数,因此它等于这个js代码:new goog.events.KeyHandler(input-container);
(. input-container -gEditableHandler)
正在访问gEditableHandler
的属性input-container
, - gEditableHandler
之前 - 向编译器指示它是属性访问而不是方法调用(作为方法)调用也具有相同的语法,即(. obj method)
)