如果有人今天(2019 年 10 月)发现,仅供参考,我们可以使用 javascript 在 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()
}
}
这样,您的子类将从 BaseClass 继承所有公共属性,但私有属性除外。
现在,我不确定是否应该采用这种方法,但您可以通过您的子类从父类读取私有属性:
const _privateProperty = new WeakMap();
class BaseClass {
constructor(){
this.publicProperty = 'public';
_privateProperty.set(this, 'private');
}
//Public method
readProperties(){
const property.private = _privateProperty.get(this);
return property;
}
}
module.exports = BaseClass;
儿童班
const BaseClass = require('./BaseClass')
class ChildClass extends BaseClass{
constructor(){
super()
}
//Public Method
showProperties(){
super.readProperties().private
}
}
const properties = new ChildClass()
properties.showProperties()