# Objects in JavaScript

Before knowing about the object, I want to tell you about my new Mobile phone, Can you guess my mobile's <mark>(Company, Model, Color, Ram, Rom, Battery, Camera, Price).</mark>🫥

Don't Worry i will tell you about my phone

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1679594062181/f4acd0c5-4e9a-4dcd-8a3a-af5ac8e0bd08.png align="center")

<mark>Here, (Company , Model ,Color , Ram , Rom , Battery , Camera, Price ) is our </mark> **<mark>key</mark>**

and <mark>(Oppo, OPPO F19 Pro, Black, 8GB, 128GB, 5000 mAh, 48px, 17990) is our </mark> **<mark>value.</mark>**

We need to know about two words, Before starting to learn about objects. 1st word is **<mark>key</mark>** and 2nd word is **<mark>value</mark>**.

### What is the object in JavaScript?

An object is a data type that can take in **collections of key-value** pairs.

A major difference between an object and other data types such as numbers and strings in JavaScript is that **an object can store different types of data as its values**. On the other hand, Primitive data types such as numbers and strings can store only numbers and strings, respectively, as their values.

And the most recognizable feature of an object is the brackets which contain the key-value pair.

## **How can we create an object in JavaScript?**

We have different ways to create an object.

1. **Object Literals.**
    
2. **new object().**
    
3. **Object.create() Method.**
    
4. **Constructor Functions.**
    

Let’s look at each one of them in detail.

**1\. Object Literals:-**

Object literals are a comma-separated list of key-value pairs wrapped in curly braces.

With the Object literals, we can create a new object. for example, the following example code creates a student object with three properties

```javascript
const student = {
    firstName : "Vinayak",
    lastName : "Singh",
    age : 26
}
console.log(obj);
// { firstName: 'Vinayak', lastName: 'Singh', age: 26 }
```

**2\. new object():-**

The second method of creating a JavaScript object is to use the <mark>new</mark> keyword.

In the example, we are creating a new object with **new Object().** after creating an object if we want to add some key- value-pairs in our object so we can use dot notation or bracket notation.

Here we have created a **student** object. then, we simply set its properties (id, name) using dot notation and age set by bracket notation.

For Example:-

```javascript
const student = new Object();
student.id = 1;
student.name = "Vinayak Singh"
student['age'] = 26
console.log(student);
// { id: 1, name: 'Vinayak Singh', age: 26 }
```

**3\. Object.create() Method:-**

We can also create a new object using the Object.create() method,which allows us to use an existing object literal as the prototype of a new object we create. Let’s say we want to create a ***student1*** object that has the same properties and methods as ***student2*** just with different values.

We use the Object.create() method to instantiate the new ***student1*** object. We need to add ***student2*** as an argument of the create() method, as that will be the prototype of the new object. Then, we simply set the values for the three properties (firstName, lastName, age) using the familiar dot notation.

```javascript
const student1 = {
    firstName : "Vinayak",
    lastName : "Singh",
    age : 26
}

const student2 = Object.create(student1)
student2.name = "Amit";
student2.lastName = "Pandey";
student2.age = 38;
console.log(student2)
// { name: 'Amit', lastName: 'Pandey', age: 38 }
```

**4\. Constructor Functions.**

If you want to create more than one object. So it is always better to use the object constructor. It allows you to avoid unnecessary repetition in your code and also makes it easier to change the properties of your object.

Here I am creating two objects student1 and student2 with (firstName, lastName, age) properties.

```javascript
function student(firstName , lastName , age){
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age

}
let student1 = new student("Vinayak" , "Singh", 26)
let student2 = new student("Amit", "Pandey" , 28 )
```
