Class JavaScriptObject

java.lang.Object
com.google.gwt.core.client.JavaScriptObject
Direct Known Subclasses:
ArrayBufferNative, ArrayBufferViewNative, CanvasPixelArray, Context2d, DataTransfer, EventTarget, FillStrokeStyle, ImageData, JsArray, JsArrayBoolean, JsArrayInteger, JsArrayMixed, JsArrayNumber, JsArrayString, JsDate, MediaError, NativeEvent, Node, NodeCollection, NodeList, PositionImpl, PositionImpl.CoordinatesImpl, StorageEvent, Style, TextMetrics, TimeRanges, TimeZoneInfo, Touch, XMLHttpRequest

public class JavaScriptObject extends Object
An opaque handle to a native JavaScript object. A JavaScriptObject cannot be created directly. JavaScriptObject should be declared as the return type of a JSNI method that returns native (non-Java) objects. A JavaScriptObject passed back into JSNI from Java becomes the original object, and can be accessed in JavaScript as expected.
  • Constructor Details

    • JavaScriptObject

      protected JavaScriptObject()
      Not directly instantiable. All subclasses must also define a protected, empty, no-arg constructor.
  • Method Details

    • createArray

      public static JavaScriptObject createArray()
      Returns a new array.
    • createArray

      public static JavaScriptObject createArray(int size)
      Returns a new array with a given size.

      Consider using this method in performance critical code instead of using createArray(), since this gives more hints to the underlying JavaScript VM for optimizations.

    • createFunction

      public static JavaScriptObject createFunction()
      Returns an empty function.
    • createObject

      public static JavaScriptObject createObject()
      Returns a new object.
    • cast

      public final <T extends JavaScriptObject> T cast()
      A helper method to enable cross-casting from any JavaScriptObject type to any other JavaScriptObject type.
      Type Parameters:
      T - the target type
      Returns:
      this object as a different type
    • equals

      public final boolean equals(Object other)
      Calls a native JS equals method if any, otherwise returns true if the objects are JavaScript identical (triple-equals).
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Calls a native JS hashCode method if any, otherwise uses a monotonically increasing counter to assign a hash code to the underlying JavaScript object. Do not call this method on non-modifiable JavaScript objects.
      Overrides:
      hashCode in class Object
      Returns:
      the hash code of the object
    • toSource

      public String toSource()
      Call the toSource() on the JSO.
    • toString

      public final String toString()
      Makes a best-effort attempt to get a useful debugging string describing the given JavaScriptObject. In Production Mode with assertions disabled, this will either call and return the JSO's toString() if one exists, or just return "[JavaScriptObject]". In Development Mode, or with assertions enabled, some stronger effort is made to represent other types of JSOs, including inspecting for document nodes' outerHTML and innerHTML, etc.
      Overrides:
      toString in class Object