Creating objects in JavaScript (4 Different Ways)

23 Jun, 2020
JavaScript is a flexible object-oriented language when it comes to syntax. In this article, we will see the different ways to instantiate objects in JavaScript.Before we proceed it is important to note that JavaScript is an object-based language based on prototypes, rather than being class-based. Because of this different basis, it can be less apparent how JavaScript allows you to create hierarchies of objects and to have an inheritance of properties and their values.
Creating object with a constructor:
One of the easiest way to instantiate an object in JavaScript. Constructor is nothing but a function and with help of new keyword, constructor function allows to create multiple objects of same flavor as shown below:
//simple functionfunction vehicle(name,maker,engine){    this.name = name;    this.maker = maker;    this.engine = engine;}//new keyword to create an objectlet car  = new vehicle('GT','BMW','1998cc');//property accessorsconsole.log(car.name);console.log(car.maker);console.log(car['engine']);
Output:Explanation: A class in OOPs have two major components, certain parameters and few member functions. In this method we declare a function similar to a class, there are three parameters, name, maker and engine ( the this keyword is used to differentiate the name,maker,engine of the class to the name,maker,engine of the arguments that are being supplied.). We then simple create an object obj of the vehicle, initialize it and call it’s method.
 
Using object literals:
Literals are smaller and simpler ways to define objects.We simple define the property and values inside curly braces as shown below:
//creating js objects with object literallet car = {    name : 'GT',    maker : 'BMW',    engine : '1998cc'};//property accessorconsole.log(car.name); //dot notationconsole.log(car['maker']); //bracket notation
Output:In the above code we created a simple object named car with the help of object literal,having properties like name,maker,engine.Then we make use of the property accessor methods(Dot notation,Bracket notation) to console.log the values.Now let’s see how we can add more properties to an already defined object:
let car = {    name : 'GT',    maker : 'BMW',    engine : '1998cc'};//adding property to the objectcar.brakesType = 'All Disc';console.log(car);
We added new property called brakesType to the above defined car object and when we console.log the entire object we get:Output:Methods can also be part of object while creation or can be added later like properties as shown below:
//adding methods to the car objectlet car = {    name : 'GT',    maker : 'BMW',    engine : '1998cc',    start : function(){        console.log('Starting the engine...');    }};car.start();// Adding method stop() later to the objectcar.stop = function() {    console.log('Applying Brake...');  }car.stop();
Output:Explanation:In the above code start method was added to the car object and later called by the car.start() and also the stop method was added too after the object was already declared.
 
Creating object with Object.create() method:
The Object.create() method creates a new object, using an existing object as the prototype of the newly created object.Example:
const coder = {    isStudying : false,    printIntroduction : function(){        console.log(`My name is ${this.name}. Am I studying?: ${this.isStudying}`);    }};const me = Object.create(coder);me.name = 'Mukul';me.isStudying = true;me.printIntroduction();
Output:
Using es6 classes:
ES6 supports class concept like any other Statically typed or object oriented language. So, object can be created out of a class in javascript as well as shown below:
//using es6 classesclass Vehicle {  constructor(name, maker, engine) {    this.name = name;    this.maker =  maker;    this.engine = engine;  }}  let car1 = new Vehicle('GT', 'BMW', '1998cc');  console.log(car1.name);  //GT
Output:
immukul
javascript-basics
javascript-object
javascript-oop
JavaScript
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Difference between var, let and const keywords in JavaScript
Differences between Functional Components and Class Components in React
Remove elements from a JavaScript Array
Roadmap to Learn JavaScript For Beginners
Difference Between PUT and PATCH Request
How to get character array from string in JavaScript?
JavaScript | Promises
Node.js | fs.writeFileSync() Method
How to filter object array based on attributes?
How to Use the JavaScript Fetch API to Get Data?