如何从Clojurescript调用Javascript?

时间:2014-05-20 20:31:35

标签: javascript clojure clojurescript

我正在学习clojure,我正在尝试将一些javascript从CodeCombat转换为clojure / clojurescript。

var base = this;
var items = base.getItems();
if (base.built.length === 0)
    base.build('peasant');

我正在尝试将Javascript代码转换为Clojure,但遗憾的是CodeCombat并没有给我任何错误消息。

(def base this)
(def items (.getItems (base) ))
(def built-len ((.length) (.built (base)) ))  
(if (= built-len 0)
    ((.build "peasant") (base) )))

你看到任何明显的错误吗?我主要遵循官方互操作教程http://clojure.org/java_interop

1 个答案:

答案 0 :(得分:2)

使用此作为宏!但是,在宏内部使用def并不好......如果可能的话,最好使用let

(this-as t
  (let [item (.getItems t)]

在你的代码中删除base周围的括号,(它是函数调用,你不想调用它)。