, - ( 2019)
javascript, WeakMap()
const _privateProperty = new WeakMap();
class BaseClass {
constructor(){
this.publicProperty = 'public';
_privateProperty.set(this, 'private');
}
}
module.exports = BaseClass;
const BaseClass = require('./BaseClass')
class ChildClass extends BaseClass{
constructor(){
super()
}
}
Thus, your child class will inherit all public properties from BaseClass, except private ones.
Now I'm not sure whether to use this approach, but you can read private properties from your parent class through your child class as follows:
const _privateProperty = new WeakMap();
class BaseClass {
constructor(){
this.publicProperty = 'public';
_privateProperty.set(this, 'private');
}
readProperties(){
const property.private = _privateProperty.get(this);
return property;
}
}
module.exports = BaseClass;
Kids class
const BaseClass = require('./BaseClass')
class ChildClass extends BaseClass{
constructor(){
super()
}
showProperties(){
super.readProperties().private
}
}
const properties = new ChildClass()
properties.showProperties()
source
share