Object Attributes
Every object has associated prototype, class, and extensible attributes. The subsections that follow explain what these attributes do and (where possible) how to query and set them.
The prototype Attribute
An object’s prototype attribute specifies
the object from which it inherits properties. (Review Prototypes and Inheritance for more
on prototypes and property inheritance.) This is such an important
attribute that we’ll usually simply say “the prototype of o
” rather than “the prototype attribute of
o
.” Also, it is important to
understand that when prototype
appears in code font, it refers to an ordinary object property, not
to the prototype attribute.
The prototype attribute is set when an object is created.
Recall from Prototypes that objects created from
object literals use Object.prototype
as their prototype.
Objects created with new
use the
value of the prototype
property
of their constructor function as their prototype. And objects
created with Object.create()
use
the first argument to that function (which may be null
) as their prototype.
In ECMAScript 5, you can query the prototype of any object by
passing that object to Object.getPrototypeOf()
. There is no
equivalent function in ECMAScript 3, but it is often possible to
determine the prototype of an object o
using the expression o.constructor
.
prototype
. Objects created with a
new
expression usually inherit a
constructor
property that refers to the constructor function used to create the object. And, as described ...
Get JavaScript: The Definitive Guide, 6th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.