私は JavaScript が初めてで、使用しようとしていますjs_of_ocaml
。
私は最初に非常に簡単に書いたcubes.ml
:
let simple (a: int) =
a + 1234
次に、それを遵守しました:
ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax \
-syntax camlp4o -linkpkg -o cubes.byte cubes.ml
次に、JavaScript ファイルを生成します。
js_of_ocaml cubes.byte
これが生成されたcubes.jsです。そのファイルには名前が見つからない1234
か、関数名が見つからないことに注意してください。simple
で生成されたものを呼び出すHome.js
関数が必要な別の JavaScript ファイルがあります。しかし、私はそれを書く方法がわかりません。誰でも助けてもらえますか?callSimple
cubes.js
(function () {
...
function callSimple(a) {
return ???;
};
...
})();
編集1:
@EdgarAroutiounian が提案した解決策を試しました。
(* cubes.ml *)
let () =
Js.Unsafe.global##.jscode := (object%js
val simple = Js.wrap_meth_callback
(fun a -> a + 1234)
val speak = Js.wrap_meth_callback
(fun () -> print_endline "hello")
end)
私が書く場合home.js
:
confirm(jscode.simple(10)); // 1244 is expected
confirm(jscode.speak()); // "hello" as string is expected
最初の行は を返しfunction (a){return p(c,aM(b,a))}
、2 行目は を返します0
。それらは私が期待するものではありません。