Name
Object.create() — create an object with specified prototype and properties
Availability
ECMAScript 5
Synopsis
Object
.
create
(
proto
)
Object
.
create
(
proto
,
descriptors
)
Arguments
proto
The prototype of the newly-created object, or
null
.descriptors
An optional object that maps property names to property descriptors.
Returns
A newly created object that inherits from
proto
and has the properties described
by descriptors
.
Throws
- TypeError
If
proto
is not an object ornull
, or ifdescriptors
is specified and causesObject.defineProperties()
to throw a TypeError.
Description
Object.create()
creates and
returns a new object with proto
as its
prototype. This means that the new object inherits properties from
proto
.
If the optional descriptors
argument is specified, Object.create()
adds properties to the new
object as if by calling Object.defineProperties()
. That is the
two-argument invocation Object.create(p,d)
is equivalent
to:
Object
.
defineProperties
(
Object
.
create
(
p
),
d
);
See Object.defineProperties() for more on
the descriptors
argument, and see Object.getOwnPropertyDescriptor() for an explanation
of property descriptor objects.
Note that this is not a method to be invoked on an object: it is a global function and you must pass an object to it.
Example
// Create an object that has own properties x and y and inherits property z
var
p
=
Object
.
create
({
z
:
0
},
{
x
:
{
value
:
1
,
writable
:
false
,
enumerable
:
true
,
configurable
:
true
},
y
:
{
value
:
2
,
writable
:
false
,
enumerable
:
true
,
configurable
:
true
},
});
See Also ...
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.