JavaScript Encapsulation

Encapsulation is a fundamental principle of Object-Oriented Programming (OOP) that restricts direct access to some of an object's components, which helps to prevent accidental interference and misuse of data. In JavaScript, encapsulation is often achieved using classes, private fields, and methods.

Encapsulation Syntax

class ClassName {
    // Private field (requires # before the field name)
    #privateField;

    constructor(value) {
        this.#privateField = value; // Accessing private field
    }

    // Getter method to access the private field
    getPrivateField() {
        return this.#privateField;
    }

    // Setter method to modify the private field
    setPrivateField(value) {
        this.#privateField = value;
    }
}
                      

Key Features of Encapsulation:

Example: Implementing Encapsulation

Example


class User {
    #username; // Private field
            
    constructor(username) {
       this.#username = username; // Initializing private field
    }
   
    // Getter method
   getUsername() {
       return this.#username;
   }
   
   // Setter method
   setUsername(newUsername) {
       this.#username = newUsername;
    }            
}
            
// Using the class
const user = new User("JohnDoe");
console.log(user.getUsername()); // Output: JohnDoe

user.setUsername("JaneDoe");
console.log(user.getUsername()); // Output: JaneDoe
           

Output

JohnDoe
JaneDoe

Explanation of Code:

Advantages of Encapsulation: