JavaScriptObject学习

GWT中的JavaScriptObject类是一个比较底层的类,

他把javascript对象包装后变成了一个Java对象,这样我们便可以通过Java语法来操作这个javascript对象了。



看一下这个类的源码,以下是他的3个静态方法,分别是创建javascript的数组,函数,对象。

这里用到了gwt的jsni(javascript native interface),jsni是java调用javascript的接口,我们所有的java代码到最后都是通过jsni来转变成javascript代码的。

他以 /*-{ 开头  以}-*/; 结尾

在这之间写的就是javascript代码了
  /**
   * 返回一个数组
   */
  public static native JavaScriptObject createArray() /*-{
    return [];
  }-*/;
  
  /**
   * 返回一个空的函数
   */
  public static native JavaScriptObject createFunction() /*-{
    return function() {
    };
  }-*/;

  /**
   * 返回一个对象
   */
  public static native JavaScriptObject createObject() /*-{
    return {};
  }-*/;


JavaScriptObject类有很多子类,他们都表示这是一个javascript对象,如下图所示

JavaScriptObject学习

JsArray表示javascript的数组对象
JsArrayString表示存放string类型的数组
Node表示DOM中的基础数据类型node,他有3个子类,分别是Document,Element,Text
Document就是我们在js中写的document对象,他是整个html的根节点,下面是他的一个静态方法,来获取document(从中也可以看出$doc就指向document,我们在写native方法时可以直接用$doc)
  /**
   * 
   * @return 返回js中的document对象
   */
  public static native Document get() /*-{
    return $doc;
  }-*/;

Element对应的就是js中的element对象了,他有很多子类,具体在Element学习中介绍吧

你可能感兴趣的:(JavaScript,java,html,gwt)