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中也可以用这个修饰符去做修饰

Last modification:March 1, 2022
If you think my article is useful to you, please feel free to appreciate