如何在ClojureScript中创建全局对象,并将字符串和函数附加到该对象?
如何在ClojureScript中创建一个附加到如何在ClojureScript中创建全局对象,并将字符串和函数附加到该对象?,clojure,clojurescript,Clojure,Clojurescript,如何在ClojureScript中创建一个附加到窗口的全局对象,并将字符串和函数附加到该对象 例如,一个myobject看起来像: {"foo": function () {..}, "bar": "somestring"} myobject.foo=>function(){..} myobject.bar=>“somestring”我不完全确定您为什么需要它,但它与Javascript版本非常相似: {:foo (fn [] ...) :bar "something"} (:foo m
窗口的全局对象,并将字符串和函数附加到该对象
例如,一个myobject看起来像:
{"foo": function () {..},
"bar": "somestring"}
myobject.foo
=>function(){..}
myobject.bar
=>“somestring”
我不完全确定您为什么需要它,但它与Javascript版本非常相似:
{:foo (fn [] ...)
:bar "something"}
(:foo my-object) => (fn [] ...)
(:bar my-object) => "something"
Clojure和Javascript版本之间有一些重要的区别
引用。Clojure映射不是对象,而是键值对
下面是生成附加到窗口的对象的JavaScript。 它有太多的属性
foo
是一个函数,而.bar
是一个字符串
(let [my-object (set! (.-myobj js/window (clj->js {})))
some-func (fn [] (+ 1 1))]
(set! (.-foo my-object) some-func)
(set! (.-bar my-object) "something"))
你是对的,我应该指定,问题应该是如何通过CLJS将对象附加到浏览器的窗口对象。