Skip to main content

Command Palette

Search for a command to run...

Understanding Object-Oriented Programming in JavaScript with Simple Real-World Examples

Updated
7 min read
Understanding Object-Oriented Programming in JavaScript with Simple Real-World Examples

Modern applications are becoming more complex every day. As projects grow larger, managing code using only functions and variables becomes difficult.

Imagine building a system with thousands of variables and functions scattered across files. Debugging and maintaining such code would quickly become a nightmare.

This is where Object-Oriented Programming (OOP) comes in.

Object-Oriented Programming helps developers organize code by modeling real-world entities as objects, making applications easier to maintain, scale, and understand.

In this article, we will learn the core ideas of Object-Oriented Programming in JavaScript using simple examples and real-world analogies.

By the end of this blog, you will understand:

  • What Object-Oriented Programming means

  • The blueprint → object analogy

  • What a class is in JavaScript

  • How to create objects using classes

  • The constructor method

  • Methods inside a class

  • The basic idea of encapsulation

  • A practical Student class example


What is Object-Oriented Programming (OOP)?

Object-Oriented Programming (OOP) is a programming paradigm that structures code around objects rather than individual functions and variables.

An object is a combination of:

  • Properties (data)

  • Methods (behavior/functions)

Example

Think about a car.

A car has:

Properties:

  • color

  • model

  • speed

Behaviors:

  • start

  • stop

  • accelerate

In programming, we represent this idea using objects.

Example:

const car = {
  model: "Tesla",
  color: "Red",
  start() {
    console.log("Car started");
  }
};

Here:

  • model and color → properties

  • start() → method

OOP helps developers build organized, reusable, and maintainable code.


Real-World Analogy: Blueprint → Objects

To better understand OOP, imagine a car manufacturing company.

Before building cars, engineers first design a blueprint.

This blueprint defines:

  • engine type

  • design

  • features

  • structure

From this single blueprint, the factory can produce many cars.

Diagram

In programming:

Concept Meaning
Blueprint Class
Actual cars Objects

So a class is a blueprint, and objects are real instances created from that blueprint.


What is a Class in JavaScript?

A class is a template used to create objects.

It defines:

  • properties

  • methods

JavaScript introduced the class keyword in ES6 (2015) to simplify object-oriented programming.

Basic Syntax

class ClassName {

}

Example:

class Car {

}

At this point, the class exists but does not yet define any properties or behavior.


Creating Objects Using Classes

Once a class is defined, we can create objects from it using the new keyword.

Example

class Car {

}

const car1 = new Car();
const car2 = new Car();

Here:

  • car1 and car2 are objects

  • They are instances of the Car class

Class → Instance Relationship

Car Class
   ↓
car1 object
car2 object

A single class can generate many objects.


The Constructor Method

When we create objects, we usually want to assign initial values like:

  • model

  • color

  • name

  • age

This is done using a constructor method.

What is a Constructor?

A constructor is a special method that runs automatically whenever a new object is created.

Example

class Car {

  constructor(model, color) {
    this.model = model;
    this.color = color;
  }

}

Explanation:

  • constructor() runs when a new object is created

  • model and color are parameters

  • this.model assigns data to the object

  • this.color assigns data to the object


Creating Objects with Constructor Values

Now we can pass values when creating objects.

class Car {

  constructor(model, color) {
    this.model = model;
    this.color = color;
  }

}

const car1 = new Car("Tesla", "Red");
const car2 = new Car("BMW", "Black");

console.log(car1);
console.log(car2);

Conceptual Output:

Car { model: 'Tesla', color: 'Red' }
Car { model: 'BMW', color: 'Black' }

Each object now stores its own unique data.


Methods Inside a Class

Methods define the behavior of objects.

Inside a class, methods are written without the function keyword.

Example

class Car {

  constructor(model, color) {
    this.model = model;
    this.color = color;
  }

  start() {
    console.log(this.model + " started");
  }

}

Calling the method:

const car1 = new Car("Tesla", "Red");

car1.start();

Output:

Tesla started

Methods allow objects to perform actions.


Understanding the this Keyword

The this keyword refers to the current object instance.

Example:

class Person {

  constructor(name) {
    this.name = name;
  }

  greet() {
    console.log("Hello, my name is " + this.name);
  }

}

const person1 = new Person("Vikram");

person1.greet();

Output:

Hello, my name is Vikram

Here, this.name refers to the name of the object calling the method.


Basic Idea of Encapsulation

Encapsulation means combining data and the methods that operate on that data into a single unit (class).

Instead of allowing data to be modified randomly, the class manages it.

Conceptual View

Object
 ├── properties (data)
 └── methods (functions that use the data)

Encapsulation provides:

  • better code organization

  • improved security of data

  • easier debugging and maintenance


Practical Example: Student Class

Let's build a real example.

We will create a Student class with:

Properties:

  • name

  • age

Method:

  • print student details

Creating the Student Class

class Student {

  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  printDetails() {
    console.log("Student Name: " + this.name);
    console.log("Student Age: " + this.age);
  }

}

Creating Multiple Student Objects

const student1 = new Student("Rahul", 20);
const student2 = new Student("Anita", 21);
const student3 = new Student("Vikram", 22);

Calling Methods

student1.printDetails();
student2.printDetails();
student3.printDetails();

Output:

Student Name: Rahul
Student Age: 20

Student Name: Anita
Student Age: 21

Student Name: Vikram
Student Age: 22

This shows how one class can create multiple objects with different data.


Why OOP is Powerful

Object-Oriented Programming is widely used because it provides several advantages.

1. Code Reusability

A class can be reused to create many objects.

Student class → thousands of student objects

2. Better Code Organization

Large applications become easier to structure.


3. Maintainability

OOP makes code easier to update and debug.


4. Real-World Modeling

OOP allows developers to represent real-world entities like:

  • User

  • Product

  • Order

  • Student

  • Car


Visual Summary: Class vs Object

          CLASS
     (Blueprint / Template)

        +-----------+
        |  Student  |
        +-----------+
        | name      |
        | age       |
        | print()   |
        +-----------+

           ↓ Instances

   student1    student2    student3
     Object      Object      Object

Key Takeaways

  • Object-Oriented Programming (OOP) organizes code using objects.

  • Classes act as blueprints for objects.

  • Objects are instances created from classes.

  • Constructors initialize object properties.

  • Methods define object behavior.

  • Encapsulation keeps related data and behavior together.


Try It Yourself

Create a class called Car.

Requirements:

Properties:

  • brand

  • speed

Method:

  • drive() → prints "Car is driving".

Create three car objects and call the drive() method.


Final Thoughts

Object-Oriented Programming is one of the most important programming concepts for modern software development.

By organizing code into classes and objects, developers can build applications that are:

  • scalable

  • reusable

  • easier to maintain

Understanding the basics of classes, objects, constructors, and methods is the first step toward mastering JavaScript and building real-world applications.

As you continue learning, you will encounter more advanced OOP concepts such as:

  • Inheritance

  • Polymorphism

  • Static methods

  • Private fields

But mastering the fundamentals covered in this article will give you a strong foundation in Object-Oriented Programming with JavaScript.

More from this blog