【问题标题】:GWT - How to call a JavaScript function inside another JavaScript functionGWT - 如何在另一个 JavaScript 函数中调用 JavaScript 函数
【发布时间】:2016-04-04 18:21:40
【问题描述】:

我有一个带有两个 JSNI JavaScript 函数的 GWT 类。我想在另一个函数中调用一个函数,如下所示:

public class MyClass
{
  public native void Function1()
  /*-{
    console.log("Function 1");
  }-*/;

  public native void Function2()
  /*-{
    Function1();
  }-*/;
}

在这种情况下,当执行Function2 时,我得到"Function1 is not defined"

请记住,我不想在Function2 代码中嵌入Function1,我需要两个不同的JSNI 函数(这样我就可以从多个函数中调用Function1)。

谢谢。

【问题讨论】:

    标签: javascript gwt jsni


    【解决方案1】:

    也将这两个方法更改为static
    您可以像这样简单地从您的 jsni 代码中调用任何方法:

    public class MyClass
    {
      public static native void Function1()
      /*-{
        console.log("Function 1");
      }-*/;
    
      public static native void Function2()
      /*-{
        @xxx.xxxxx.xxxx.MyClass::Function1();
      }-*/;
    }
    

    更多信息可以在here找到。

    【讨论】:

    • 也可以调用非静态函数
    • 那么你必须使用this
    • 谢谢你们,这正是我想要的。
    【解决方案2】:
    package mypackage;  
    
    public class Account {
        private int balance = 0;
    
     public int add(int amt) {
          balance += amt;
       }
    
    public native void exportAdd() /*-{
        var that = this;
        that.@mypackage.Account::add(I)(10);
    }-*/;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多