In an earlier post (Object Creation and Manipulation Functions in JavaScript), I listed some functions that are available on the Object
constructor. Here is the list once again:
create
assign
defineProperty
defineProperties
getPrototypeOf
setPrototypeOf
getOwnPropertyDescriptor
getOwnPropertyDescriptors
getOwnPropertyNames
getOwnPropertySymbols
is
seal
freeze
preventExtensions
isExtensible
isSealed
isFrozen
keys
entries
values
And also these methods are on Object.prototype
:
hasOwnProperty
isPrototypeOf
propertyIsEnumerable
These functions are used for object creation and manipulation. In the current post, I am going to talk about the first one of these functions, Object.create
.
Every constructor function in JavaScript has an associated prototype that is used as the prototype for the instances created by that constructor. In fact, the inheritance pattern in JavaScript is based on prototypes, so you can just create an object based on a prototype, without the need to define a constructor function. That's when Object.create
becomes useful.
So Object.create
creates an object based on a prototype. The prototype is specified as the first argument to this function. You can also specify a second argument that is a map of property names and property descriptors.
Here are some examples:
let prototype = {
name: "Ali",
greet() {
console.log("Hi. My name is " + this.name);
},
};
let person1 = Object.create(prototype);
let person2 = Object.create(prototype, {
age: {
value: 19,
writable: true,
enumerable: true,
configurable: true,
},
});
As you see in the example, the second argument follows the same pattern used in Object.defineProperties
.
Related Posts
- Object Creation and Manipulation Functions in JavaScript
- Property Descriptors in JavaScript
- Getting and Setting Property Descriptors in JavaScript (Part 1)
- Getting and Setting Property Descriptors in JavaScript (Part 2)
- Getting and Setting Property Descriptors in JavaScript (Part 3)
- Default Values of Property Descriptors in JavaScript
Very good explanation on Object.create method .I used to create object using the new operator like var obj=new Object(); other way is using the object literal notation like var obj={} and another way is to create a object from the function(i.e constructor).
Thanks. Sometimes it is easier to use
Object.create
.I am making a game in ethereum. Though i know java programming a little, but i wrote that. Now i am at level 3. I am learning java from your post. It helps me a lot.
That's very nice. Just don't confuse Java and JavaScript. Although their syntax is similar, they are basically different languages.
Yes, it's really confusing. Learning slowly. Thanks for your advise sir.
Your post is so helpful
i like you sir.i follow you sir.i like your post
technology is developing day by day
by this programing is easy today
thanks for the valuable post
wow..thats so educative post...
great learing media..
thats nice.. .
carry on dear
This post is quiet useful for the creation of object and its manipulation.
Thanks sir @ghasemkiani for sharing programming post . Its very difficult to understand but i will.
Stay blessed
nice post. great efforts.
This post was the best about JavaScript Object.create. Very well analyzed. @ghasemkiani
With java and javascript sometimes i get confused.your post has helped me a lot.you were the best to analyze.Thank You sir @ghasemkiani
i know java programming a little, i wrote that.....I am learning java from your post. Its helpful post..... thanks for share.....
Very good explanation on Object.create method..and nice post sir
love to read it ......