# Object
Return to: JavaScript Core index

Object is the primitive JavaScript object type. All JavaScript objects are descended from Object. That is, all JavaScript objects have the methods defined for Object.

## Platform Support

IE | Mozilla | Netscape | Opera | Safari
--- | --- | --- | --- | ---
4.0+ | 1.0+ | 2.0+ | 7.0+ | 1.0+

## Constructors

Constructor | Action | IE | Mozilla | Netscape | Opera | Safari
--- | --- | --- | --- | --- | --- | ---
Object Constructor([String value]) : Object|Number|String|Boolean Creates a new instance of an Object. | Show Details | 4.0+ | 1.0+ | 2.0+ | 7.0+ | 1.0+

### Object([String value]) : Object|Number|String|Boolean

Creates a new instance of an Object.

Parameters

String | value | (optional)Specifies a JavaScript primitive type (String, Number, or Boolean) to be converted to a String, Number, or Boolean object.

Returns

Object |
Number |
String |
Boolean |

## Properties

Property | Action | IE | Mozilla | Netscape | Opera | Safari
--- | --- | --- | --- | --- | --- | ---
constructor : Function Specifies the function that creates a prototype of an object. | Show Details | 4.0+ | 1.0+ | 3.0+ | 7.0+ | 1.0+

See Also

  Object.toString

Availability

  JavaScript 1.1|JScript 2.0|ECMAScript v1

prototype : Object Represents the prototype for this class. You can use the prototype to add properties or methods to all instances of a class. | Show Details | 4.0+ | 1.0+ | 3.0+ | 7.0+ | 1.0+

See Also

  Function.prototype

Availability

  JavaScript 1.1|ECMA-262

## Functions

Method | Action | IE | Mozilla | Netscape | Opera | Safari
--- | --- | --- | --- | --- | --- | ---
eval(string string) : Number|Object|String Deprecated. Evaluates a string of JavaScript code in the context of an object. | Show Details | 4.0+ | 1.0+ | 3.0+ | 7.0+ | 1.0+

Parameters

string | string | Any string representing a JavaScript expression, statement, or sequence of statements. The expression can include variables and properties of existing objects.

Returns

Number |
Object |
String |

Remarks

  The `eval` method is not longer available as a method of `Object`. Use the top-level `eval` function.

  ### Backward Compatibility

  #### JavaScript 1.2 and 1.3

  `eval` as a method of `Object` and every object derived from `Object` is deprecated (but still available).

  #### JavaScript 1.1

  `eval` is a method of `Object` and every object derived from `Object`.

See Also

  eval

Availability

  JavaScript 1.1|Deprecated as a method of objects; retained as a top-level function in JavaScript 1.2.|Removed as a method of objects in JavaScript 1.4

hasOwnProperty(String propname) : Boolean Checks whether a property is inherited. | Show Details | 5.5+ | 1.0+ | 6.0+ | 7.0+ | no

Parameters

String | propname | The name of the property to check for.

Returns

Boolean |

See Also

  Function.prototype|Object.propertyIsEnumerable

Availability

  JavaScript 1.5|JScript 5.5|ECMAScript v3

isPrototypeOf(Object object) : Boolean Returns true if the object is a prototype of another. | Show Details | 5.5+ | 1.0+ | 6.0+ | 7.0+ | no

Parameters

Object | object | The object to compare the original object to.

Returns

Boolean |

See Also

  Function.prototype|Object.constructor

Availability

  JavaScript 1.5|JScript 5.5|ECMAScript v3

propertyIsEnumerable(String property) : Boolean Returns true if the property can be enumerated in a for/in loop. | Show Details | 5.5+ | 1.0+ | 6.0+ | 7.0+ | no

Parameters

String | property | Name of the property to check.

Returns

Boolean |

See Also

  Function.prototype|Object.hasOwnProperty

Availability

  JavaScript 1.5|JScript 5.5|ECMAScript v3

toLocaleString() : String Returns a localized string representation of an object. | Show Details | 4.0+ | 1.0+ | 3.0+ | 7.0+ | 1.0+

Returns

String |

See Also

  Array.toLocaleString|Date.toLocaleString|Number.toLocaleString|Object.toString

Availability

  JavaScript 1.5|JScript 5.5|ECMAScript v3

toSource() : String Returns a string representing the source code of the object. | Show Details | no | 1.0+ | 4.06+ | no | no

Returns

String |

  ### Example: Using `toSource`

  The following code defines the `Dog` object type and creates `theDog`, an object of type `Dog`:

      function Dog(name,breed,color,sex) {
                              this.name=name
                              this.breed=breed
                              this.color=color
                              this.sex=sex
                              }
                              theDog = new Dog("Gabby","Lab","chocolate","girl")

  Calling the `toSource` method of `theDog` displays the JavaScript source that defines the object:

      theDog.toSource()
                              //returns ({name:"Gabby", breed:"Lab", color:"chocolate", sex:"girl"})

Remarks

  The `toSource` method returns the following values:

  - For the built-in `Object` object, `toSource` returns the following string indicating that the source code is not available:

      function Object() {
                              [native code]
                              }

  - For instances of `Object`, `toSource` returns a string representing the source code.
  - For custom objects, `toSource` returns the JavaScript source that defines the object as a string.

  This method is usually called internally by JavaScript and not explicitly in code. You can call `toSource` while debugging to examine the contents of an object.

See Also

  toString

Availability

  JavaScript 1.3

toString() : String Returns a string representing the specified object. | Show Details | 4.0+ | 1.0+ | 2.0+ | 7.0+ | 1.0+

Returns

String |

  The following example prints the string equivalent of the current location.

      document.write("location.toString() is " + location.toString() + "
      ")

  The output is as follows:

      location.toString() is file:///C|/TEMP/myprog.htmll

  Assume you have an `Image` object named `sealife` defined as follows:

      <IMG NAME="sealife" SRC="images\seaotter.gif" ALIGN="left" VSPACE="10">

  Because the `Image` object itself has no special `toString` method, `sealife.toString()` returns the following:

      object Image

  The following example prints the string equivalents of the numbers 0 through 9 in decimal and binary.

      for (x = 0; x < 10; x++) {
                              document.write("Decimal: ", x.toString(10), " Binary: ",
                              x.toString(2), "
      ")
                              }

  The preceding example produces the following output:

      Decimal: 0 Binary: 0
                              Decimal: 1 Binary: 1
                              Decimal: 2 Binary: 10
                              Decimal: 3 Binary: 11
                              Decimal: 4 Binary: 100
                              Decimal: 5 Binary: 101
                              Decimal: 6 Binary: 110
                              Decimal: 7 Binary: 111
                              Decimal: 8 Binary: 1000
                              Decimal: 9 Binary: 1001

Remarks

  Every object has a `toString` method that is automatically called when it is to be represented as a text value or when an object is referred to in a string concatenation. For example, the following examples require `theDog` to be represented as a string:

      document.write(theDog)
                              document.write("The dog is " + theDog)

  By default, the `toString` method is inherited by every object descended from `Object`. You can override this method for custom objects that you create. If you do not override `toString` in a custom object, `toString` returns `[object type]`, where `type` is the object type or the name of the constructor function that created the object.

  For example:

      var o = new Object()
                              o.toString // returns [object Object]

See Also

  Object.constructor|Object.toLocaleString|Object.valueOf

Availability

  JavaScript 1.0|JScript 2.0|ECMAScript v1

unwatch(String prop) : Object Removes a watchpoint set with the watch method. | Show Details | no | no | 4.0+ | 7.0+ | no

Parameters

String | prop | The name of a property of the object.

Returns

Object |

Remarks

  By default, this method is inherited by every object descended from `Object`.

See Also

  watch

Availability

  JavaScript 1.2

valueOf() : Object Returns the primitive value of the specified object | Show Details | 4.0+ | 1.0+ | 3.0+ | 7.0+ | 1.0+

Returns

Object |

Remarks

  JavaScript calls the `valueOf` method to convert an object to a primitive value. You rarely need to invoke the `valueOf` method yourself; JavaScript automatically invokes it when encountering an object where a primitive value is expected.

  By default, the `valueOf` method is inherited by every object descended from `Object`. Every built-in core object overrides this method to return an appropriate value. If an object has no primitive value, `valueOf` returns the object itself, which is displayed as:

      object Object]

  You can use `valueOf` within your own code to convert a built-in object into a primitive value. When you create a custom object, you can override `Object.valueOf` to call a custom method instead of the default `Object` method.

  ### Overriding `valueOf` for custom objects

  You can create a function to be called in place of the default `valueOf` method. Your function must take no arguments.

  Suppose you have an object type `myNumberType` and you want to create a `valueOf` method for it. The following code assigns a user-defined function to the object's `valueOf` method:

      myNumberType.prototype.valueOf = new Function(functionText);

  With the preceding code in place, any time an object of type `myNumberType` is used in a context where it is to be represented as a primitive value, JavaScript automatically calls the function defined in the preceding code.

  An object's `valueOf` method is usually invoked by JavaScript, but you can invoke it yourself as follows:

      myNumber.valueOf();

  ### Note

  Objects in string contexts convert via the `toString` method, which is different from `String` objects converting to string primitives using `valueOf`. All string objects have a string conversion, if only "`[object type]`". But many objects do not convert to number, boolean, or function.

See Also

  Object.toString

Availability

  JavaScript 1.1|JScript 2.0|ECMAScript v1

watch(String prop, String handler) : Object Watches for a property to be assigned a value and runs a function when that occurs. | Show Details | no | no | 6.0+ | 7.0+ | no

Parameters

String | prop | Name of the property to set.
String | handler | Name of the function to call.

Returns

Object |

  ### Example: Using `watch` and `unwatch`

  This script displays the following:

      o.p changed from 1 to 2
                              o.p changed from 2 to 3
                              o.p changed from undefined to 4

Remarks

  Watches for assignment to a property named `prop` in this object, calling `handler(prop, oldval, newval)` whenever `prop` is set and storing the return value in that property. A watchpoint can filter (or nullify) the value assignment, by returning a modified `newval` (or `oldval`).

  If you delete a property for which a watchpoint has been set, that watchpoint does not disappear. If you later recreate the property, the watchpoint is still in effect.

  To remove a watchpoint, use the `unwatch` method. By default, the `watch` method is inherited by every object descended from `Object`.

  The JavaScript debugger has functionality similar to that provided by this method, as well as other debugging options. For information on the debugger, see Venkman.

  In NES 3.0 and 4.x, `handler` is called from assignments in script as well as native code. In Firefox, `handler` is only called from assignments in script, not from native code. For example, `window.watch('location', myHandler)` will not call `myHandler` if the user clicks a link to an anchor within the current document. However, the following code will call `myHandler`: `window.location += '#myAnchor';`.

See Also

  unwatch

Availability

  JavaScript 1.2

## References

Array|Boolean|Function|Function.prototype|Number|String

## Availability

JavaScript objectsJavaScript 1.0|JScript 1.0|ECMAScript v1

text_javascript aptana_docs