Master JavaScript OOP Basics: Objects, Constructors, Prototypes & Inheritance

This article walks you through the fundamentals of JavaScript object‑oriented programming, covering object definitions, factory patterns, constructor functions, prototypes, prototype chains, and inheritance, with clear explanations, diagrams, and code examples to help you grasp each concept.

Tencent IMWeb Frontend Team
Tencent IMWeb Frontend Team
Tencent IMWeb Frontend Team
Master JavaScript OOP Basics: Objects, Constructors, Prototypes & Inheritance

1. Object Definition

In ECMAScript‑262 an object is defined as “an unordered collection of properties, whose values can be primitive values, objects, or functions.” In JavaScript this simply means an object is a set of key‑value pairs, where the value may be a primitive, another object, or a function.

2. Creating Objects

Objects can be created using the new operator:

Or by using an object literal:

Methods can be added to a literal object as shown:

3. Accessing Properties and Methods

Given a simple object, its properties can be accessed using dot notation or bracket notation:

If the property name is stored in a variable, bracket notation must be used:

This technique is crucial when handling complex data structures.

4. Factory Pattern

When many similar objects are needed, writing repetitive code becomes cumbersome. The factory pattern provides a template (a “factory”) that can generate multiple objects with shared structure.

Factory functions simplify object creation, but they do not identify an object's type. The instanceof operator can be used for that purpose:

5. Constructor Functions

The new keyword turns a regular function into a constructor. It creates an intermediate object, sets its prototype, binds this to the new object, and finally returns the instance.

Internally, the following transformation occurs:

var p1 = New(Person, 'tom', 20); is equivalent to var p1 = new Person('tom', 20); .

6. Prototype

Every function has a prototype property that points to an object. Instances created with new have an internal __proto__ that references this prototype, allowing shared methods.

When both the constructor and its prototype define the same method, the instance’s own method takes precedence.

The in operator can check whether a property exists on an object or its prototype chain:

7. Prototype Chain

All objects can serve as prototypes, forming a chain that ends at Object.prototype. Functions inherit from Function.prototype, which in turn inherits from Object.prototype, creating a prototype chain that enables property lookup.

8. Inheritance

Combining constructors and prototypes allows inheritance. A child constructor can call the parent constructor with Parent.call(this, …) to inherit instance properties, while setting the child’s prototype to a new instance of the parent links shared methods.

9. Summary

The article covered the basics of JavaScript object‑oriented programming: object creation, factory pattern, constructor functions, prototypes, prototype chains, and inheritance. Understanding these concepts helps developers organize code efficiently, choose the right pattern for a given scenario, and avoid common pitfalls when dealing with objects and their relationships.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

object‑oriented programming
Tencent IMWeb Frontend Team
Written by

Tencent IMWeb Frontend Team

IMWeb Frontend Community gathering frontend development enthusiasts. Follow us for refined live courses by top experts, cutting‑edge technical posts, and to sharpen your frontend skills.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.