nha*_*nha 14 javascript clojure clojurescript
如何从Javascript调用ClojureScript代码(不是相反!).
已经可以从Java调用Clojure,但我不知道如何在ClojureScript中执行等效操作.
nbe*_*ger 19
使用,导出您希望在js中可用的功能^:export,然后简单地将其称为my.ns.fn()
cljs:
(ns hello-world.core)
(defn ^:export greet [] "Hello world!")
Run Code Online (Sandbox Code Playgroud)
JS:
hello_world.core.greet()
Run Code Online (Sandbox Code Playgroud)
见接受的答案,以 "用JavaScript Clojurescript互操作性"的详细信息.
Clojurescript编译为Javascript,因此您可以按原样使用它.
Datascript是学习它的灵感来源,它是用Clojurescript编写的,并且通过vanilla javascript javascript原样使用.
在伪代码中给出:
<script src="https://github.com/tonsky/datascript/releases/download/0.11.6/datascript-0.11.6.min.js"></script>
...
...
var d = require('datascript');
// or
// var d = datascript.js;
var db = d.empty_db();
var db1 = d.db_with(db, [[":db/add", 1, "name", "Ivan"],
[":db/add", 1, "age", 17]]);
var db2 = d.db_with(db1, [{":db/id": 2,
"name": "Igor",
"age": 35}]);
var q = '[:find ?n ?a :where [?e "name" ?n] [?e "age" ?a]]';
assert_eq_set([["Ivan", 17]], d.q(q, db1));
assert_eq_set([["Ivan", 17], ["Igor", 35]], d.q(q, db2));
Run Code Online (Sandbox Code Playgroud)
您可以看到此博客条目的互操作部分.
最后,浏览基于数据脚本的基于 avascript 的测试套件.
| 归档时间: |
|
| 查看次数: |
3422 次 |
| 最近记录: |