调试类成员 - ReferenceError:未定义myPanel

时间:2014-02-20 19:07:38

标签: gwt gwt-super-dev-mode

我正在使用Chrome开发工具来逐步浏览我的GWT MVP应用,因为它使用超级开发模式呈现视图。

在开发人员工具中,我正在逐步执行我的方法的源映射java代码。 我可以突出显示变量,右键单击和“在控制台中评估”以检查我的本地范围变量的状态。

我想和班级成员做同样的事情。 它适用于公共方法。在私有方法中,评估类成员会导致“ReferenceError:未定义”。响应。

我尝试用“this.myPanel”注释我的班级成员。响应是一个简单的“未定义”。除了'this'引用Window [0]

1 个答案:

答案 0 :(得分:1)

尝试使用this$static 它是持有成员和实例状态的对象,作为参数传递给以前是类成员的函数,但GWT将它们编译为常规js函数

静态成员

GWT会将静态函数转换为函数(不在js中的任何对象下)

public class SomeEntry implements EntryPoint {
    public static String Moo() {
        String href = Window.Location.getHref();
        return href.substring(5, 10);
    }
    public static String Moo(String x) {
        String href = Window.Location.getHref();
        return href.substring(5, 10);
    }
    public void onModuleLoad() {
        Window.alert(Moo());
        Window.alert(Moo("asd"));
    }
}

将编译为:

function Moo(){
  var href_0;
  href_0 = getHref();
  return $substring_0(href_0, 5, 10);
}

function Moo_0(){
  var href_0;
  href_0 = getHref();
  return $substring_0(href_0, 5, 10);
}

因此,在编译时解决的重载将在JS中起作用。这样做的好处是不需要使用点运算符进行推荐。每个点都是一个新的查找。