8

私は 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 ファイルがあります。しかし、私はそれを書く方法がわかりません。誰でも助けてもらえますか?callSimplecubes.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。それらは私が期待するものではありません。

4

1 に答える 1