Skip to content

Instantly share code, notes, and snippets.

@joshblack
Created December 15, 2014 18:48
Show Gist options
  • Save joshblack/f361a6d9d6d19d771c23 to your computer and use it in GitHub Desktop.
Save joshblack/f361a6d9d6d19d771c23 to your computer and use it in GitHub Desktop.
Semi-private members in JavaScript using Symbols
function Constructor() {
const privateMember = Symbol('privateMember'),
publicMember = 'publicMember';
this[privateMember] = 'foo';
this[publicMember] = 'bar';
}
let c = new Constructor();
console.log(Object.keys(c)); // ['publicMember']
console.log(c['publicMember']); // 'bar'
console.log(c['privateMember']); // null
console.log(c[Symbol('privateMember')]); // null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment