包装一个接收 JS 对象的 OCaml 函数(记录)

Wrap an OCaml function that receives a JS object (record)

我想在 OCaml 中写一个非常简单的函数,然后用 js_of_ocaml 把它包装成一个 JS 函数 jsGet,这样 jsGet 就可以接受一个 JS 对象(或者记录)作为输入。

我尝试了以下代码:

\ in Home.js
function testJsGet () {
    var input = {field_1: 5, field_2: 6};
    var output = jsGet(input);
    document.getElementById("result").value += output;
}

wrap.ml中:

type t =
  < field_1: int Js.prop;
    field_2: int Js.prop
  > Js.t

let () =
  Js.Unsafe.global##.jsGet := Js.wrap_callback
      (fun (r:t) -> r##.field_1);

wrap.ml 编译得很好,但是,运行 Home.js returns undefined 作为输出。

有谁知道如何纠正这个问题?

删除下划线。请参阅 http://ocsigen.org/js_of_ocaml/2.8/manual/bindings

处的方法名称和下划线