GWT中的JSNI动态函数引用

Mat*_*ija 2 gwt jsni

我想从gwt调用任意js函数.函数名称将在functionname变量中.像这样的东西:

private static native String execute(String functionName, JavaScriptObject data) /*-{
    return $wnd.functionName(data);
}-*/;
Run Code Online (Sandbox Code Playgroud)

我假设这样的事情是可能的,但是如何创建fn变量来表示我的任意函数名称函数.

private static native String execute(JavaScriptObject fn, JavaScriptObject data) /*-{
    return fn(data);
}-*/;
Run Code Online (Sandbox Code Playgroud)

jus*_*sio 7

如果需要按名称调用函数,则需要执行以下操作:

private static native String execute(String functionName,JavaScriptObject data)/*-{
     $wnd[functionName](data);

}-*/;
Run Code Online (Sandbox Code Playgroud)

要获得对函数的引用,您需要像这样使用JSNI:

private static native JavaScriptObject getFunction(String functionName)/*-{
    return  $wnd[functionName];

}-*/;
Run Code Online (Sandbox Code Playgroud)