Class Undefined

java.lang.Object
org.mozilla.javascript.Undefined
All Implemented Interfaces:
Serializable

public class Undefined extends Object implements 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:
  • Field Details

    • instance

      public static final 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" parameter of a Callable instance, because we cannot change that interface without breaking backward compatibility.
  • Method Details

    • readResolve

      public Object readResolve()
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • isUndefined

      public static boolean isUndefined(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.