April 2018
Beginner to intermediate
426 pages
10h 19m
English
ES2015 introduced a new primitive type called Symbol that is immutable, and it can be used as an object property. Let's see how we can use it to declare the items property in the Stack class (we will use an array for storage to simplify the code):
const _items = Symbol('stackItems'); //{1}
class Stack {
constructor () {
this[_items] = []; //{2}
}
//Stack methods
}
In the preceding code, we declared the variable _items as a Symbol (line {1}), and initiated its value inside the class constructor (line {2}). To access the variable _items, we simply need to replace all this.items occurrences with this[_items].
This approach provides a false class private property, because the method Object.getOwnPropertySymbols ...