extends,constructor,super的含义
class Person {
type:string='person';
id:number=100;
constructor(name:string,gender?:string,age?:number){
}
}
//new Person就是调用Person中的constructor
const p1 = new Person('laoxie');
console.log('p1=',p1);//打印结果如下图一所示
class Student extends Person{
constructor (name:string,gender:string,age?:number){
//有extends一定要写super,super是调用父组件的constructor
super(name,gender,age);
}
}
const s1 = new Student( ' laoxie','男',18)
图一如下:
其下写法一跟写法二是一个效果
//写法一
class Person {
id:number=100;
constructor(name:string,gender?:string,age?:number){
}
}
//写法二
class Person {
id:number;
constructor(name:string,gender?:string,age?:number){
this.id=100
}
}
添加静态属性
class Person {
type:string='person';
id:number=100;
name:string;
//受保护(只在当前类和子类中访问)
protected gender: string;
//私有属性(ES6不支持私有属性,只能在当前类中使用,不能在实例中使用也不能在子类中使用)
private readonly age:number;
//添加静态属性(ES6不支持静态属性,但支持静态方法)
static typeof = 'Person'
constructor(name:string,gender?:string,age?:number){
this.name = name
}
}
- public
- private 私有的--------声明它的类可访问
- protected 受保护的----声明它的类、子类可访问
- readonly 与其他修饰符一起使用时必须写在最后