Object

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.

Browser/User Agent Support

IEMozillaNetscapeOperaSafari
4.0+1.0+2.0+7.0+1.0+

Constructors

ConstructorIEMozillaNetscapeOperaSafari
Creates a new instance of an Object.
4.0+1.0+2.0+7.0+1.0+
 

Properties

PropertyIEMozillaNetscapeOperaSafari
Specifies the function that creates a prototype of an object.
4.0+1.0+3.0+7.0+1.0+
 
Represents the prototype for this class. You can use the prototype to add properties or methods to all instances of a class.
4.0+1.0+3.0+7.0+1.0+
 

Methods

MethodIEMozillaNetscapeOperaSafari
Deprecated. Evaluates a string of JavaScript code in the context of an object.
4.0+1.0+3.0+7.0+1.0+
 
Checks whether a property is inherited.
5.5+1.0+6.0+7.0+no
 
Returns true if the object is a prototype of another.
5.5+1.0+6.0+7.0+no
 
Returns true if the property can be enumerated in a for/in loop.
5.5+1.0+6.0+7.0+no
 
Returns a localized string representation of an object.
4.0+1.0+3.0+7.0+1.0+
 
Returns a string representing the source code of the object.
no1.0+4.06+nono
 
Returns a string representing the specified object.
4.0+1.0+2.0+7.0+1.0+
 
Removes a watchpoint set with the watch method.
nono4.0+7.0+no
 
Returns the primitive value of the specified object
4.0+1.0+3.0+7.0+1.0+
 
Watches for a property to be assigned a value and runs a function when that occurs.
nono6.0+7.0+no
 

References

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

Availability

JavaScript objectsJavaScript 1.0 | JScript 1.0 | ECMAScript v1

Constructor Detail

ObjectNumberStringBoolean Object([String value])

Creates a new instance of an Object.

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

Property Detail

Function constructor

Specifies the function that creates a prototype of an object.

Remarks
See Also

Object.toString

Availability

JavaScript 1.1 | JScript 2.0 | ECMAScript v1

Object prototype

Represents the prototype for this class. You can use the prototype to add properties or methods to all instances of a class.

Remarks
See Also

Function.prototype

Availability

JavaScript 1.1 | ECMA-262

Method Detail

eval(string string) :  NumberObjectString

Deprecated. Evaluates a string of JavaScript code in the context of an object.

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

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.

StringpropnameThe name of the property to check for.

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.

ObjectobjectThe object to compare the original object to.

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.

StringpropertyName of the property to check.

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.

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.

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.

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.

StringpropThe name of a property of the 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

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.

StringpropName of the property to set.
StringhandlerName of the function to call.

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