【问题标题】:calling javascript Object from ClojureScript从 ClojureScript 调用 javascript 对象
【发布时间】:2021-03-05 20:28:13
【问题描述】:

我想在 javascript 中实例化一个类,将对象传递给我的 ClojureScript,然后从 Clojure 访问它的属性和函数。当我只有 clojure.core 命名空间可供我使用时,如何访问 test-obj 的函数和属性?

我有以下可怕的黑客解决方案。

Javascript:

class Test {
  constructor (a,b) {
    this.a = a;
    this.b = b;
  }
  getA () {
    return this.a;
  }
}

window['createA'] = (a,b) => {
  return new Test(a,b);
}

window['geta'] = (o) => {
  return o.getA();
}

ClojureScript:

(defn myfn[] 
  (let [test-obj (.createTest js/window "x" 1)]
  [:div (.geta js/window test-obj)]))

【问题讨论】:

    标签: javascript clojure clojurescript


    【解决方案1】:

    我相信常规 JS 互操作应该可以正常工作:)

    将您的班级暴露给外界:

    window["Test"] = Test
    

    然后,来自 cljs:

    (let [x (js/Test.)]
      (prn (.getA x)))
    

    【讨论】:

      猜你喜欢
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多