Full Stack • Java • System Design • Cloud • AI Engineering

JavaScript2026-06-06

JavaScript Objects Explained: Complete Guide to Objects

Learn JavaScript Objects in depth including object creation, properties, methods, memory model, prototypes, object cloning, destructuring, and interview questions.

JavaScript Objects Explained

Objects are one of the most important concepts in JavaScript.

Everything in JavaScript revolves around objects:

  • Arrays
  • Functions
  • Dates
  • DOM Elements
  • Promises
  • Classes

Understanding objects is essential before learning:

  • OOP
  • Prototypes
  • Classes
  • React
  • Node.js

What is an Object?

An Object is a collection of:

Properties (Data)

Methods (Functions)

stored as key-value pairs.

Example:

const user = {
    name: "Venu",
    age: 35,
    city: "San Antonio"
};

Why Do We Need Objects?

Without Objects:

const name = "Venu";
const age = 35;
const city = "San Antonio";

Managing related data becomes difficult.

With Objects:

const user = {
    name: "Venu",
    age: 35,
    city: "San Antonio"
};

All related data stays together.


Real World Example

const employee = {
    id: 101,
    name: "Venu",
    department: "Engineering",
    salary: 150000
};

Object represents a real-world entity.


Object Architecture

Object
  |
  +--------------------+
  |
  +-- Properties
  |
  +-- Methods

Example:

const user = {
    name: "Venu",

    greet() {
        console.log("Hello");
    }
};

Object Literal Syntax

Most common way to create objects.

const user = {
    name: "Venu",
    age: 35
};

This is called:

Object Literal

Object Structure

const user = {
    name: "Venu",
    age: 35
};

Structure:

user
 |
 +-- name -> Venu
 |
 +-- age -> 35

Accessing Object Properties

Dot Notation

console.log(user.name);

Output:

Venu

Bracket Notation

console.log(user["name"]);

Output:

Venu

Dot vs Bracket Notation

Feature Dot Bracket
Simple Access Yes Yes
Dynamic Keys No Yes
Preferred Yes Sometimes

Dynamic Property Access

const key = "name";

console.log(user[key]);

Output:

Venu

Adding Properties

const user = {};

user.name = "Venu";
user.age = 35;

Result:

{
    name: "Venu",
    age: 35
}

Updating Properties

user.age = 36;

Result:

{
    name: "Venu",
    age: 36
}

Deleting Properties

delete user.age;

Result:

{
    name: "Venu"
}

Object Methods

Functions inside objects are called methods.

const user = {

    name: "Venu",

    greet() {

        console.log("Hello");

    }

};

Usage:

user.greet();

Output:

Hello

Object with Methods

const calculator = {

    add(a,b) {
        return a+b;
    },

    multiply(a,b) {
        return a*b;
    }

};

Usage:

calculator.add(10,20);

Output:

30

this Keyword in Objects

const user = {

    name: "Venu",

    greet() {

        console.log(this.name);

    }

};

Output:

Venu

this Architecture

user Object
    |
    +-- name
    |
    +-- greet()
            |
            +-- this -> user

Nested Objects

Objects can contain other objects.

const employee = {

    id: 101,

    address: {

        city: "San Antonio",
        state: "Texas"

    }

};

Access:

console.log(
    employee.address.city
);

Output:

San Antonio

Nested Object Diagram

employee
    |
    +-- id
    |
    +-- address
            |
            +-- city
            |
            +-- state

Objects and Arrays

const company = {

    name: "CodeWithVenu",

    technologies: [
        "Java",
        "Spring",
        "AWS"
    ]

};

Access:

company.technologies[0];

Output:

Java

Object Memory Model

Objects are stored in Heap Memory.

Example:

const user = {
    name: "Venu"
};

Memory:

Stack
------
user ----+

          |
          v

Heap
------
{
  name:"Venu"
}

Object References

const user1 = {
    name: "Venu"
};

const user2 = user1;

Memory:

user1 ----+
          |
          v

user2 ----+

Heap Object

Both variables point to the same object.


Reference Behavior

user2.name = "JavaScript";

Now:

console.log(user1.name);

Output:

JavaScript

Because both references share the same object.


Object Equality

const obj1 = {
    name: "Venu"
};

const obj2 = {
    name: "Venu"
};

Comparison:

console.log(obj1 === obj2);

Output:

false

Because:

Different References

Object Cloning

Using Spread Operator

const user = {
    name: "Venu"
};

const copy = {
    ...user
};

Clone Architecture

Original Object
       |
       +---- Copy

Separate references.


Object.keys()

Returns keys.

Object.keys(user);

Output:

["name","age"]

Object.values()

Returns values.

Object.values(user);

Output:

["Venu",35]

Object.entries()

Returns key-value pairs.

Object.entries(user);

Output:

[
 ["name","Venu"],
 ["age",35]
]

Object Destructuring

Extract properties.

const user = {
    name: "Venu",
    age: 35
};

const {
    name,
    age
} = user;

Usage:

console.log(name);

Output:

Venu

Destructuring Diagram

Object
   |
   +-- name
   |
   +-- age

Extract

name
age

Optional Chaining

Safely access properties.

const user = {};

console.log(
    user.address?.city
);

Output:

undefined

No error.


Object.freeze()

Makes object immutable.

const user = {
    name: "Venu"
};

Object.freeze(user);

Attempt:

user.name = "Java";

Ignored.


Object.seal()

Allows updates.

Prevents:

Adding Properties

Deleting Properties

Iterating Objects

for...in

for(const key in user) {

    console.log(key);

}

Output:

name
age

Real World Example

API Response

const response = {

    id: 1,

    name: "Venu",

    skills: [
        "Java",
        "Spring",
        "AWS"
    ]

};

Access:

response.skills[0];

Output:

Java

Common Mistakes

Comparing Objects

{} === {}

Output:

false

Mutating Shared References

const user2 = user1;

Changes affect both.


Forgetting this

Wrong:

const user = {

    name: "Venu",

    greet() {
        console.log(name);
    }

};

Correct:

console.log(this.name);

Best Practices

Use:

const

for objects.


Use descriptive property names.


Prefer:

Object Destructuring

for cleaner code.


Clone objects before modification.


Use Optional Chaining for nested data.


Interview Questions

What is an Object?

A collection of key-value pairs.


How Are Objects Stored?

Objects are stored in Heap Memory.

Variables store references.


Difference Between Dot and Bracket Notation?

Dot:

user.name

Bracket:

user["name"]

Bracket supports dynamic keys.


What is Object Destructuring?

Extracting properties into variables.


Why Does Object Comparison Return False?

Because objects are compared by reference.


What is Object.freeze()?

Makes an object immutable.


What is Optional Chaining?

Safe property access using:

?.

What is the Difference Between Shallow Copy and Deep Copy?

Shallow Copy:

{...obj}

Nested objects still share references.

Deep Copy creates completely independent objects.


Cheat Sheet

Object
------
Collection Of Key-Value Pairs

Property Access
---------------
user.name

user["name"]

Methods
-------
Functions Inside Objects

Memory
------
Objects Stored In Heap

Reference Types
---------------
Objects
Arrays
Functions

Useful APIs
-----------
Object.keys()
Object.values()
Object.entries()
Object.freeze()
Object.seal()

Modern Features
---------------
Destructuring
Spread Operator
Optional Chaining

Summary

Objects are the foundation of JavaScript.

Key Concepts:

  • Object Literals
  • Properties
  • Methods
  • this Keyword
  • Nested Objects
  • Object References
  • Destructuring
  • Optional Chaining
  • Object.freeze()

Understanding Objects is essential before learning:

  • Prototypes
  • Classes
  • OOP
  • React State
  • Node.js
  • Design Patterns

Mastering Objects is one of the most important steps toward becoming an advanced JavaScript developer.