I'm learning about classes in ES6...
I'd like to use private properties, in some form, so that only certain methods can be called from an instance of a class.
For example using Symbol...
/* A.js */
const _privateMethod = Symbol('_privateMethod')
class A {
[_privateMethod]() {
return 'yup'
}
do() {
return this[_privateMethod]()
}
}
const a = new A()
a.do() /* yup */
..._privateMethod cannot be called directly. So far so good.
However, I am wondering how to then go about overriding _privateMethod in a class that inherits from A. For example, the following will not work:
/* B.js */
const _privateMethod = Symbol('_privateMethod')
class B extends A {
[_privateMethod]() {
return 'nope'
}
}
const b = new B()
b.do() /* yup */
How is it recommended to do this?