JS::OOP_Mastery

Object-Oriented JavaScript — The 20% that drives 80% of results

class JSDeveloper
extends YouRightNow {}

10 focused two-hour sessions. No fluff, no detours. Master the OOP patterns that appear in every serious JS codebase — from React class components to Node services to your own projects.

10 Sessions
20h Content + Review
80% Real-world Coverage
1 Project at the End
Start Session 01 →

Course Tracker

Progress is saved in your browser. Green = done, purple = up next. Click any dot to jump to that session.

// Sessions completed
0%
complete

The Curriculum

Each session is two hours of focused learning followed by a 15-minute review. Built around the concepts you'll actually use day-to-day.

Session 01 ○ Not started
Why OOP?
Objects & Object Literals
  • Objects as the basic unit of data + behaviour
  • Object literals vs constructors
  • this inside object methods
  • Reference vs value: objects vs primitives
Session 02 ○ Not started
The class Keyword
& Instantiation
  • class syntax and the constructor()
  • Instance properties and class fields
  • Instantiating with new
  • Instance methods vs object-literal methods
Session 03 ○ Not started
Prototypes — What
class Really Is
  • The prototype chain
  • Object.create() and prototype vs __proto__
  • How class desugars under the hood
  • hasOwnProperty vs inherited properties
Session 04 ○ Not started
Encapsulation: Private
Fields & Accessors
  • #privateFields (ES2022)
  • get / set accessors
  • Convention-based privacy (_field) in legacy code
  • Closures as an encapsulation technique
Session 05 ○ Not started
Inheritance
& super
  • extends — building on existing classes
  • super() in the constructor
  • Overriding methods; super.method()
  • When composition beats inheritance
Session 06 ○ Not started
Polymorphism
& Duck Typing
  • Method overriding in action
  • instanceof and its limits
  • Duck typing — JS's real polymorphism
  • Interfaces by convention (no interface keyword)
Session 07 ○ Not started
Static Members
& Factory Patterns
  • static methods, properties & blocks
  • Factory pattern
  • Singleton pattern — and why it's often an anti-pattern
  • Utility classes and builders
Session 08 ○ Not started
this, Binding
& Arrow Functions
  • The four ways this gets set
  • .bind(), .call(), .apply()
  • Arrow functions as class fields to lock this
  • Common bugs in event handlers & callbacks
Session 09 ○ Not started
Mixins &
Composition Patterns
  • Why JS has no multiple inheritance
  • Mixin functions
  • Composing behaviour over extends chains
  • Object.assign() for mixins
Session 10 ○ Not started
Practical Project:
Mini Event Emitter
  • Building a class-based pub/sub system
  • Applying encapsulation + static + inheritance together
  • One cohesive, portfolio-worthy capstone
  • Where to take it next (state managers, plugin systems)

How Each Session Works

🎯

2-Hour Core

Concepts, worked examples, and annotated code. Each session builds directly on the previous one.

⏱

Built-in Timer

Each session page has a countdown timer. Stay on track without watching the clock yourself.

📝

15-Min Review

Short quiz + key-point checklist at the end of every session. Consolidates what you just learned.

✅

Progress Saved

Mark sessions done, check off topics. Everything persists in your browser across visits.


Top 3 Reference Resources
  • 01

    MDN — Classes Official

    The authoritative, always-current reference. Every keyword, accessor, and edge case documented with examples. Bookmark this — you'll return here constantly.

  • 02

    javascript.info — Classes Guide

    The best free explanation of prototypes under the hood. Bridges the gap between Session 2's syntax and Session 3's "what's really happening" perfectly.

  • 03

    You Don't Know JS Yet — Objects & Classes Deep Dive

    Kyle Simpson's free book. Essential reading for Session 8's this-binding problem — the single biggest source of real-world JS OOP bugs.