JavaScript class接口的类型划分
在OOP的编程中,属性和方法可以分为两组:
- 内部接口-方法和属性,可以从类的其他方法访问,但不能从外部访问
- 外部接口-方法和属性,也可以从外部访问
这就像notion,内部接口我们无法去调用它,对于外部接口就像他暴露出来的公共api一样,我们可以在任意地方发起http请求去调用
尽管 ES6 引入了class
可以很好地模仿类并允许我们进行面向对象变成,但 JavaScript中 缺少在类中创建公共、私有和受保护成员的能力,所以程序员们通过一种约定的办法去解决这个问题,并且也在最新的提案中,并在ES2019实现了
TS的修饰符以及对应的JS实现
访问修饰符
1. public
这个是默认选项,在js中什么不写即可
2. private
私有类型,对应的属性方法只能在这个类中使用,无法在子类和实例化的对象中使用,在js中使用#前缀来标识
3. protected
保护类型,仅仅类和类的子类能使用,在js中使用_前缀来标识
只读修饰符
4. readonly
只能读不能写,在新版的语法中,我们可以这样去模拟他
class Car {
#name = "wumao";
get name() {
return this.#name;
}
}
静态修饰符
5. static
静态成员无需实例化,直接通过类名调用,该标记的属性无法被实例继承,仅仅作为类的属性来使用,在js中也可以用这个修饰符去做修饰