标签:定义类 直接 构造函数 default 对象 ons rip dem export
ES6 中实现对象编程 定义类方法
class A{ constructor(){ //构造函数 用来定义初始化数据 } }
非私有化属性直接定义即可,例如
class A{ constructor(){ //构造函数 用来定义初始化数据 this.publicAttrbute = {}; } }
这样在实例化类之后即可进行访问属性
var a = new A(); console.log(a.publicAttrbute);
当想要定义私有化属性的时候,即不想在使其在外部可以直接访问或定义可以用WeakMap来实现
const privateAttrbute = new WeakMap(); class A{ constructor(){ //构造函数 用来定义初始化数据 privateAttrbute.set(this, {}) //初始化私有属性 } }
WeakMap散列的KEY值是对象,所以在外部无法进行直接访问与设置,在内部可以用set,get来提供获取与设置接口
const privateAttrbute = new WeakMap(); class A{ constructor(){ //构造函数 用来定义初始化数据 privateAttrbute.set(this, {}) //初始化私有属性 } get private(){ return privateAttrbute.get(this); } set private(value){ privateAttribute.set(this.value); } demo(){ this.private[‘test‘] = 1; } }
使用export default 提供
export default (function(){ const privateAttrbute = new WeakMap(); class A{ constructor(){ //构造函数 用来定义初始化数据 privateAttrbute.set(this, {}) //初始化私有属性 } get private(){ return privateAttrbute.get(this); } set private(value){ privateAttribute.set(this.value); } demo(){ this.private[‘test‘] = 1; } } return A; })()
标签:定义类 直接 构造函数 default 对象 ons rip dem export
原文地址:https://www.cnblogs.com/Gasg/p/12785925.html