KoderSolution Logo
HomeArticlesTutorialsForumAI LabRun Code
KoderSolution Logo

The world’s most advanced technical ecosystem for modern software engineers. Learn, build, and grow with next-generation developer tools and resources.

Engineering Newsletter

Join 100,000+ engineers receiving curated high-signal content weekly.

Platforms

  • Technical Articles
  • Interactive Tutorials
  • AI Coding Lab
  • Developer Forum
  • Developer Tools

Pages

  • About Us
  • Contact Us
  • Privacy Policy
  • Terms of Service
  • Refund Policy
  • Disclaimer
  • Advertisement

Popular Topics

  • PHP
  • Laravel
  • Python
  • React.Js
  • MySQL
© 2026 KoderSolutionAll Rights Reserved
Developed Bymaksudur.dev
⚡

JavaScript

Topic Hub & Articles

JS Introduction

10 min

JS Where To

10 min

JS Output

10 min

Recap Quiz

5 Questions

JS Statements

10 min

JS Syntax

10 min

JS Comments

10 min

Recap Quiz

5 Questions

JS Variables

10 min

JS Let

10 min

JS Const

10 min

Recap Quiz

5 Questions

JS Operators

10 min

JS Arithmetic

10 min

JS Assignment

10 min

Recap Quiz

5 Questions

JS Data Types

10 min

JS Functions

10 min

JS Objects

10 min

Recap Quiz

5 Questions

JS Events

10 min

JS Strings

10 min

JS String Methods

10 min

Recap Quiz

5 Questions

JS String Search

10 min

JS String Templates

10 min

JS Numbers

10 min

Recap Quiz

5 Questions

JS Number Methods

10 min

JS BigInt

10 min

JS Arrays

10 min

Recap Quiz

5 Questions

JS Array Methods

10 min

JS Array Search

10 min

JS Array Sort

10 min

Recap Quiz

5 Questions

JS Array Iteration

10 min

JS Array Const

10 min

JS Dates

10 min

Recap Quiz

5 Questions

JS Date Formats

10 min

JS Date Get Methods

10 min

JS Date Set Methods

10 min

Recap Quiz

5 Questions

JS Math

10 min

JS Random

10 min

JS Booleans

10 min

Recap Quiz

5 Questions

JS Comparisons

10 min

JS If Else

10 min

JS Switch

10 min

Recap Quiz

5 Questions

JS Loop For

10 min

JS Loop For In

10 min

JS Loop For Of

10 min

Recap Quiz

5 Questions

JS Loop While

10 min

JS Break

10 min

JS Iterables

10 min

Recap Quiz

5 Questions

JS Sets

10 min

JS Maps

10 min

JS TypeOf

10 min

Recap Quiz

5 Questions

JS Type Conversion

10 min

JS Destructuring

10 min

JS Bitwise

10 min

Recap Quiz

5 Questions

JS RegExp

10 min

JS Errors

10 min

JS Scope

10 min

Recap Quiz

5 Questions

JS Hoisting

10 min

JS Strict Mode

10 min

JS This Keyword

10 min

Recap Quiz

5 Questions

JS Arrow Function

10 min

JS Classes

10 min

JS Modules

10 min

Recap Quiz

5 Questions

JS JSON

10 min

JS Debugging

10 min

JS Best Practices

10 min

Recap Quiz

5 Questions

JS Common Mistakes

10 min

JS Performance

10 min

JS Reserved Words

10 min

Recap Quiz

5 Questions

DOM Intro

10 min

DOM Methods

10 min

DOM Document

10 min

Recap Quiz

5 Questions

DOM Elements

10 min

DOM HTML

10 min

DOM Forms

10 min

Recap Quiz

5 Questions

DOM CSS

10 min

DOM Animation

10 min

DOM Events

10 min

Recap Quiz

5 Questions

DOM Event Listener

10 min

DOM Navigation

10 min

DOM Nodes

10 min

Recap Quiz

5 Questions

DOM Collections

10 min

DOM Node List

10 min

JS Window

10 min

JS Screen

10 min

JS Location

10 min

Recap Quiz

5 Questions

JS History

10 min

JS Navigator

10 min

JS Popup Alert

10 min

Recap Quiz

5 Questions

JS Timing

10 min

JS Cookies

10 min

JS Callbacks

10 min

JS Asynchronous

10 min

JS Promises

10 min

Recap Quiz

5 Questions

JS Async/Await

10 min

Progress
0%

0 / 92 Lessons

JavaScriptJS Tutorial
Lesson

JS Classes

10 min reading
Free Course

JavaScript Classes: ES6 Syntax, Inheritance, & Private Fields

Introduced in ES6, the class keyword provides a clean syntactic sugar over JavaScript's existing prototype-based inheritance model. ES2022 added support for private fields (#field) and static class blocks.

Class Inheritance Architecture

flowchart TD
    ParentClass["Base Class (Vehicle)"] --> ChildClass["Derived Class (Car) extends Vehicle"]
    ChildClass --> SuperCall["constructor() calls super(brand)"]
    ChildClass --> Instances["Instances (myCar) access instance & parent methods"]

Class Syntax Reference

Feature Syntax Explanation
Constructor constructor(props) {} Special initialization method invoked on new Class().
Private Field #privateSecret = 10; Hard private field accessible only within class body.
Static Method static help() {} Utility method attached to Class constructor, not instances.
Getter / Setter get score() {} / set score(v) {} Intercepts property reading and writing.
Inheritance class Car extends Vehicle Establishes prototype inheritance chain.

Practical Code Example

// Demonstrating ES6 Classes, Private Fields, and Inheritance

class User {
  // Private field declaration (ES2022)
  #passwordHash;

  constructor(username, password) {
    this.username = username;
    this.#passwordHash = this.#hashPassword(password);
  }

  // Private method
  #hashPassword(pass) {
    return `HASHED_${pass}_SECURE`;
  }

  // Getter method
  get userDetails() {
    return `User: ${this.username}`;
  }

  // Instance method
  validatePassword(inputPassword) {
    return this.#passwordHash === this.#hashPassword(inputPassword);
  }

  // Static Utility Method
  static compareUsers(userA, userB) {
    return userA.username.localeCompare(userB.username);
  }
}

// Subclass Inheritance
class AdminUser extends User {
  constructor(username, password, role) {
    super(username, password); // Must invoke super() before using 'this'
    this.role = role;
  }

  getAdminInfo() {
    return `${this.userDetails} [Role: ${this.role}]`;
  }
}

const admin = new AdminUser("maksudur_dev", "secret123", "SuperAdmin");
console.log(admin.getAdminInfo());
console.log(`Password Valid? ${admin.validatePassword("secret123")}`);

Best Practices & Gotchas

  • Must Call super() First in Derived Constructors: In child class constructors extending a parent class, you MUST call super() before accessing this.
  • Private Fields (#field) Are Enforced at Runtime: Private fields prefixed with # cannot be accessed or inspected from outside the class instance.
  • Classes Are NOT Hoisted: Unlike function declarations, classes must be defined BEFORE instantiating them with new.

Self-Check Challenge

Write a class Rectangle with width and height properties and a getter area returning width * height.

Save Your Progress

Unlock Your
Full Potential.

Sign in to track your learning journey, earn industry-recognized certificates, and join our elite developer community.

Quick Access With

Enterprise-Grade Security Protocol

Recommended Courses & Books

Try it Yourself

Experiment with the code from this lesson in our interactive playground.

Open Playground

Stuck on this lesson?

Join our community of senior developers.

Ask in Forum