Skip to content

A simple helper for simulating private class members in ES6

Notifications You must be signed in to change notification settings

Past9/internal-map

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

#internal-map

ES6 currently has no built-in way to create private class members. One way to simulate them is to use a WeakMap. internal-map does this for you. Use it like so:

// ES6 class module
"use strict";

let internal = require("internal-map")();

class MyClass {

    constructor(privateData) {
        internal(this).privateData = privateData;
    }

    printPrivateData() {
        console.log("Private data:", internal(this).privateData);
    }

}


var myInstance = new MyClass("Can't touch this!");

myInstance.printPrivateData();  // Prints "Private data: Can't touch this!"

console.log(typeof myInstance.privateData === "undefined");  // Prints "true"

About

A simple helper for simulating private class members in ES6

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published