- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 javascript 中创建对象并调用一个方法。方法名称被修改。我尝试使用 externs.js 但运气不佳。
(deftype ^:export SceneMain []
Object
(handleShow [_]
(display-categories)))
;; should be used in javascript as:
var s = new SceneMain();
s.handleShow();
;; Uncaught TypeError: Object [object Object] has no method 'handleShow'
;; Uncaught TypeError: Object #<dg> has no method 'handleShow'
这是我的 externs.js
var SceneMain = {};
SceneMain.handleShow = function() {};
最佳答案
不完全确定您要在那里完成什么。
externs.js
在您使用未使用 Google 的 Closure 编译器编译的 Clojurescript 中的外部 javascript 库时很有用,主要原因是当使用超出空格的优化时,编译器不会损坏外部库。
以MixPanel Javascript为例应用程序接口(interface)。
假设您有以下使用该 api 的 cljs 代码:
(defn track
([name data]
(.track js/mixpanel name
(clj->js data)))
([name]
(.track js/mixpanel name)))
你需要在你的 externs.js
中定义
var mixpanel = {};
mixpanel.track = function() {};
避免 Closure 编译器混淆对该对象/函数的调用。
现在,如果您想从 Javascript 调用 Clojurescript 函数,使用 ^:export
即可。
假设你有:
(ns test.cljs)
(defn ^:export testfn
[]
(.log js/console "test"))
从 javascript 你做的:
test.cljs.testfn()
关于javascript - 导出 deftype 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20189860/
repl 中的以下工作: (defprotocol MyProtocol (foo [this])) (deftype A [] MyProtocol (foo [this] "a"))
我希望你对为什么或(为什么不)应该(或不应该)使用这个陈述的想法。 由于这有点主观,这是我的标准: 出于具体原因(而不是不合理的意见)给予的赞成票。接受的最终答案将是最全面的答案。 最佳答案 在精心设
编辑: 在发布我的问题的先前版本后,我发现真正的问题在于嵌套函数。 如果我在 deftype 中有一个闭包我无法从该闭包中更新任何可变字段。 例如。以下作品: (deftype Test [^:uns
出于与 Java 的互操作性的目的,我需要一个具有执行初始化的空构造函数的类。 这个类的对象需要有类似于可变java字段的东西(即对象代表游戏的后端,需要保持游戏状态)。 deftype 做了我想做的
而defrecord是 Clojure 中定义“实体”的首选形式 - 对于一般情况 - 在 ClojureScript 中可以找到对 deftype 的更多引用。 ,反射(reflect)在 vari
我第一次使用 deftype 是因为我正在编写一个优先级队列,而 defrecord 会干扰 ISeq 的实现。 为了避免需要 "deconstruct" the class, alter a fie
我正在尝试 Clojure 1.2,特别是根据 clojure.org documentation 在 deftype 中支持的可变字段。 。 但我无法让该装置工作。更新字段的语法是什么?或者可变性尚
尝试使用另一种类型的一种类型似乎不起作用: (deftype Foo [^int a ^int b]) (definterface Bars (^Foo makefoo [])) (deftype B
我正在尝试创建一个宏来生成 Clojure deftype 并需要生成类型提示。我目前有一些测试代码: (defmacro test-macro [n] (let [obj-sym (gensym
我正在尝试在 javascript 中创建对象并调用一个方法。方法名称被修改。我尝试使用 externs.js 但运气不佳。 (deftype ^:export SceneMain [] Obje
我正在尝试按照 C. Shapiro 的 Common Lisp: An interactive approach 学习 Common Lisp .我尝试定义第 18 章中的 bstree 类型。我的
我正在测试 deftype和 defprotocol在 Clojure 中,但我有点不高兴。 我正在使用莱宁根。我的核心文件( src/core.clj )如下所示: (defprotocol Spe
我要实现 transient和 persistent!在我的 Clojure deftype 中。据我所知,这意味着有另一个 deftype,TransientMyThing,实现必要的方法。到目前为
昨天,Rich 将 Clojure 的"new"分支拉入 master。我们现在正在拥抱 deftype 和 defprotocol 之美。当然,来自 Haskell 的我很想像在 Haskell 中
我正在尝试在编译器中使用 clojure,因此需要参数化对 deftype 的调用;但是,我很难使类型提示得以实现。考虑以下代码: (defn describe [x] (let [fields
我正在尝试了解一款对投资组合进行计算的 Android 应用。投资组合存储在 res/values/portfolio.xml 中: 当在应用程序中按下一个按钮时,投资组合数据被检索如下: Strin
我想提供基于 Javascript Typed Arrays 的向量的 Clojurescript 实现,它支持 assoc、replace 等。我想我想这样做(也许有更好的方法,或者也许有人已经做到
我正在优化应用程序的一个以性能为中心的小部分。我正在尝试创建一个通过 deftype 创建的类型的 Java 数组 (deftype MyThing [foo bar baz]) 但是,我似乎找不到任
在 clojurescript 中通过 deftype 创建类型时: (deftype SomeObject [a b c] Object (update [_]
我正在尝试编写一个可以从 Java 使用的 Clojure 库,而用户不知道它是用 Clojure 编写的。为此,我需要我的字段具有正确的类型: 我喜欢我能做到这一点: (deftype Point
我是一名优秀的程序员,十分优秀!