GWT 2.7.0

## com.google.gwt.core.client
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 java.lang.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 Summary
`protected` | `JavaScriptObject()` Not directly instantiable.

Method Summary

`

`<T extends JavaScriptObject> T`

`

`cast()`
A helper method to enable cross-casting from any `JavaScriptObject` type to any other `JavaScriptObject` type.

`static JavaScriptObject` | `createArray()` Returns a new array.
`static JavaScriptObject` | `createArray(int size)` Returns a new array with a given size.
`static JavaScriptObject` | `createFunction()` Returns an empty function.
`static JavaScriptObject` | `createObject()` Returns a new object.
`boolean` | `equals(java.lang.Object other)` Returns `true` if the objects are JavaScript identical (triple-equals).
`int` | `hashCode()` Uses a monotonically increasing counter to assign a hash code to the underlying JavaScript object.
`java.lang.String` | `toSource()` Call the toSource() on the JSO.
`java.lang.String` | `toString()` Makes a best-effort attempt to get a useful debugging string describing the given JavaScriptObject.

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### JavaScriptObject

    protected JavaScriptObject()

  Not directly instantiable. All subclasses must also define a protected, empty, no-arg constructor.

Method Detail

### 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(java.lang.Object other)

  Returns `true` if the objects are JavaScript identical (triple-equals).

  Overrides:
    `equals` in class `java.lang.Object`

### hashCode

    public final int hashCode()

  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. TODO: if the underlying object defines a 'hashCode' method maybe use that?

  Overrides:
    `hashCode` in class `java.lang.Object`
  Returns:
    the hash code of the object

### toSource

    public java.lang.String toSource()

  Call the toSource() on the JSO.

### toString

    public final java.lang.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 `java.lang.Object`

GWT 2.7.0