learn2kode.in

What Is Inheritance in JavaScript?

JavaScript inheritance is a core concept of object-oriented programming that allows one object or class to reuse properties and methods from another. The object that shares data is called the parent, and the one that receives it is called the child.
Inheritance helps reduce duplicate code and makes applications easier to maintain.

Why Inheritance Is Important

Inheritance allows developers to:
It is widely used in JavaScript OOP, frameworks, and modern web applications.

Types of Inheritance in JavaScript

JavaScript supports inheritance mainly through:
Both work internally using the prototype chain.

Prototypal Inheritance Explained

Every JavaScript object has a hidden link called a prototype. When you access a property, JavaScript looks for it in the object first, then in its prototype.
Example:
const parent = {
  greet() {
    return "Hello from parent";
  }
};

const child = Object.create(parent);

console.log(child.greet());
Here, child inherits the greet() method from parent.

Constructor Function Inheritance

Inheritance can also be achieved using constructor functions.
Example:
function Person(name) {
  this.name = name;
}

Person.prototype.sayHello = function () {
  return "Hi, I am " + this.name;
};

function Developer(name, role) {
  Person.call(this, name);
  this.role = role;
}

Developer.prototype = Object.create(Person.prototype);
Developer.prototype.constructor = Developer;
This approach is common in older JavaScript codebases.

ES6 Class Inheritance (Recommended)

ES6 introduced a cleaner syntax using class and extends.
Example:
class Person {
  constructor(name) {
    this.name = name;
  }

  greet() {
    return `Hello, I am ${this.name}`;
  }
}

class Developer extends Person {
  constructor(name, skill) {
    super(name);
    this.skill = skill;
  }
}
This is the modern and recommended way to implement inheritance.
The Role of extends and super
Without super(), the child class cannot access this.
Inheritance vs Composition
Inheritance focuses on is-a relationships, while composition focuses on has-a relationships.

Modern JavaScript often combines both for better flexibility.

Common Mistakes in JavaScript Inheritance
Avoiding these improves code quality.

When Should You Use Inheritance?

Use inheritance when:
Avoid inheritance for unrelated features.

Final Thoughts

JavaScript inheritance is essential for mastering object-oriented programming. Whether you use prototypes or ES6 classes, understanding inheritance will help you write cleaner, reusable, and scalable code.