1、private

private修饰的变量是私有变量,只能在类内部进行访问,不能在类外部访问

本类(内部) 本类(外部) 子类(内部)
true false false
  1. class Bar {
  2. private name: string;
  3. constructor(name:string){
  4. this.name = name;
  5. }
  6. getName(){
  7. console.log(this.name)
  8. }
  9. }
  10. var bar:Bar = new Bar("王五");
  11. bar.getName()
  12. // console.log(bar.name)❌ 因为private声明的变量不能在类外部访问

在子类中访问,报错

  1. class Bar {
  2. private name: string;
  3. constructor(name:string){
  4. this.name = name;
  5. }
  6. getName(){
  7. console.log(this.name)
  8. }
  9. }
  10. class Foo extends Bar{
  11. getName(): void {
  12. console.log(this.name) //❌
  13. }
  14. }
  15. var foo:Foo = new Foo("王五");

2、protected的作用和private类似

唯一不同的地方就是在子类内部可以访问