首页 > 其他 > 详细

TypeScript 类中的访问类型和构造器

时间:2020-06-03 09:45:16      阅读:33      评论:0      收藏:0      [点我收藏+]
访问类型有 private, protected, public
class Person {
  name: string;
  public sayHi() {
    console.log(this.name); // 类内调用
  }
}

class Teacher extends Person{
  public sayBye() {
    this.name;
  }
}
const person = new Person();
person.name = ‘zina‘;
console.log(person.name); // 类外调用
person.sayHi(); // 类外调用

这里可以对属性进行赋值和取值,是因为类中属性方法默认是 public

* public: 允许我在类对内外被调用
* private: 允许我在类内被使用
* protected: 允许在类内及继承的子类中使用



class Person {
  public name: string;
  constructor(name: string){ // 调用的时候自动执行
    this.name = name;
  }
}
const person = new Person(‘zina‘);
console.log(person.name);
// 想给属性赋值的时候,比较传统的写法是先定义一个 name 属性
// 然后在构造器里面赋值,有没有更简单的方法,是有的



class Person1 {
  // 调用的时候自动执行
  constructor(public name: string){}
}
const person1 = new Person1(‘zina‘);
console.log(person.name);
// 在参数前加一个访问类型,加一个 public ,等同于定义一个 name 并赋值



class Person2 {
  constructor(public name: string){}
}
class Teacher extends Person2{
  /**
  * 子类定义了一个age,在创建的时候也传递了,还是会报错,因为继承了 Person2
  * @param age
  */
  // constructor(public age:number){}
  constructor(public age:number){
    super(‘zina‘); // 如果子类有构造器,父类也有构造器,这个时候子类就一定要手动的调用下父类的构造器
  }
}
const teacher = new Teacher(28);
console.log(teacher.name, teacher.age)

 



总结:
1、访问类型:
* public: 允许我在类对内外被调用
* private: 允许我在类内被使用
* protected: 允许在类内及继承的子类中使用
2、
class Person1 {
  constructor(public name: string){} // 自动执行
}
// 等同于
class Person {
  public name: string;
  constructor(name: string){ // 自动执行
    this.name = name;
  }
}
3、super
如果子类有构造器,这个时候子类就一定要手动的调用下父类的构造器,super()

 

TypeScript 类中的访问类型和构造器

原文:https://www.cnblogs.com/wzndkj/p/13035117.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!