I'm trying to understand why I need to use WeakMaps to create private class members, instead of just using a normal variable. They both create encapsulation with closures, and module imports.
(function encapsulation() {
const my_var = 'My secret info';
const my_var2 = new WeakMap();
class Test {
constructor() {
my_var2.set(this, 'My secret info 2');
console.log(my_var); // My secret info
console.log(my_var2.get(this)); // My secret info 2
}
}
const t = new Test();
})();
console.log(my_var); // undefined
console.log(my_var2); // undefined
// Same result!