簡體   English   中英

從 ClojureScript 調用 javascript Object

[英]calling javascript Object from ClojureScript

我想在 javascript 中實例化一個 class,將 object 傳遞給我的 ClojureScript,並從 Z3CE402Z34C404314EF19DEE 訪問它的屬性和函數當我只有 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)]))

我相信常規的 JS 互操作應該可以正常工作:)

將您的 class 暴露給外界:

window["Test"] = Test

然后,從 cljs:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM