ES6 Class中私有属性实现方法有哪些总结?
- 内容介绍
- 文章标签
- 相关推荐
本文共计755个文字,预计阅读时间需要4分钟。
私有属性是面向对象编程(OOP)中常见的一个特性,通常具备以下特点:+ 能被class内部的不同的方法访问,但不能在类外部被访问;+ 子类不能继承父类的私有属性。+ 隐藏性
私有属性
私有属性是面向对象编程(OOP)中非常常见的一个特性,一般满足以下的特点:
- 能被class内部的不同方法访问,但不能在类外部被访问;
- 子类不能继承父类的私有属性。
备胎Class
时间回到四年前,2015年6月,ES6发布成为标准,为了纪念这个历史性时刻,这个标准又被称为ES2015,至此,JavaScript中的class从备胎中转正。在这之前,class一直作为JS的关键字,雪藏不见天日。
class被认为是JS的一种语法糖,它为JavaScript带来了用面向对象的思想描述一个实体的能力。但似乎还远远不够,class的能力远没满足JS开发者们的期待。于是,TC39的大佬们也努力地去做到更好,并推出了一项新的提案:
class Foo { #a; // 私有属性 constructor(a, b) { this.#a = a; this.b = b } }
上面私有属性的声明,需要先经过Babel等编译器编译后才能正常使用。
提案已经到Stage 3了,未来可期!
可是,一众JSer们已经等不及了......
JSer的挣扎
通过对数据的一定封装,JS开发者们走上了曲线实现“私有属性”之路。
1. 约定俗成
JS界以一种不成文的规定,在变量前加上下划线"_"前缀,约定这是一个私有属性;但实际上,它仍然是一个穿上皇帝新衣般的公共属性。
本文共计755个文字,预计阅读时间需要4分钟。
私有属性是面向对象编程(OOP)中常见的一个特性,通常具备以下特点:+ 能被class内部的不同的方法访问,但不能在类外部被访问;+ 子类不能继承父类的私有属性。+ 隐藏性
私有属性
私有属性是面向对象编程(OOP)中非常常见的一个特性,一般满足以下的特点:
- 能被class内部的不同方法访问,但不能在类外部被访问;
- 子类不能继承父类的私有属性。
备胎Class
时间回到四年前,2015年6月,ES6发布成为标准,为了纪念这个历史性时刻,这个标准又被称为ES2015,至此,JavaScript中的class从备胎中转正。在这之前,class一直作为JS的关键字,雪藏不见天日。
class被认为是JS的一种语法糖,它为JavaScript带来了用面向对象的思想描述一个实体的能力。但似乎还远远不够,class的能力远没满足JS开发者们的期待。于是,TC39的大佬们也努力地去做到更好,并推出了一项新的提案:
class Foo { #a; // 私有属性 constructor(a, b) { this.#a = a; this.b = b } }
上面私有属性的声明,需要先经过Babel等编译器编译后才能正常使用。
提案已经到Stage 3了,未来可期!
可是,一众JSer们已经等不及了......
JSer的挣扎
通过对数据的一定封装,JS开发者们走上了曲线实现“私有属性”之路。
1. 约定俗成
JS界以一种不成文的规定,在变量前加上下划线"_"前缀,约定这是一个私有属性;但实际上,它仍然是一个穿上皇帝新衣般的公共属性。

