org.mozilla.javascript

## Class Undefined

- java.lang.Object
- - org.mozilla.javascript.Undefined

- All Implemented Interfaces:
    java.io.Serializable

      public class Undefined
      extends java.lang.Object
      implements java.io.Serializable

  This class implements the Undefined value in JavaScript.

  We represent "undefined" internally using two static objects -- "Undefined.instance" and SCRIPTABLE_UNDEFINED. Java code that needs to make something undefined should generally use the first, and use the second if a Scriptable object is absolutely required.

  Java code that needs to test whether something is undefined must use the "isUndefined" method because of the multiple internal representations.

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.Object` | `instance` This is the standard value for "undefined" in Rhino.
    `static Scriptable` | `SCRIPTABLE_UNDEFINED` An alternate representation of undefined, to be used only when we need to pass it to a method that takes as Scriptable as a parameter.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object obj)`
    `int` | `hashCode()`
    `static boolean` | `isUndefined(java.lang.Object obj)` Safely test whether "obj" is undefined.
    `java.lang.Object` | `readResolve()`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### instance

          public static final java.lang.Object instance

      This is the standard value for "undefined" in Rhino. Java code that needs to represent "undefined" should use this object (rather than a new instance of this class).

    - #### SCRIPTABLE_UNDEFINED

          public static final Scriptable SCRIPTABLE_UNDEFINED

      An alternate representation of undefined, to be used only when we need to pass it to a method that takes as Scriptable as a parameter. This is used when we need to pass undefined as the "this" parmeter of a Callable instance, because we cannot change that interface without breaking backward compatibility.

  - ### Method Detail

    - #### readResolve

          public java.lang.Object readResolve()

    - #### equals

          public boolean equals(java.lang.Object obj)

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

    - #### hashCode

          public int hashCode()

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

    - #### isUndefined

          public static boolean isUndefined(java.lang.Object obj)

      Safely test whether "obj" is undefined. Java code must use this function rather than testing the value directly since we have two representations of undefined in Rhino.