private protected public 访问类型
private 允许在类内被使用
案例:首先声明一个类叫做Person 有name属性和sayHi方法
class Person {
private name :String;
public sayHi(){
//当我们定义的name是private类型的时候,在类内可以被调用
console.log(this.name)
}
}
//定义之后需要引用执行
const person = new Person();
person.sayHi()
protected 允许在类内及继承的子类中被使用
还是上面的代码
class Person {
private name :String;
public sayHi(){
//当我们定义的name是private类型的时候,在类内可以被调用
console.log(this.name)
}
}
//定义之后需要引用执行
class Teacher extends Person{
public sayB(){
console.log(this.name)
}
}
Teacher.sayHi()
public 允许在类内外被调用
class Person {
public name :String;
public sayHi(){
//当我们定义的name是private类型的时候,在类内可以被调用
console.log(this.name)
}
}
const person = new Person();
person.name = "你好"
console.log(person.name)
person.sayHi()
//constructor 自动执行函数
class Person{
public name:String;
constructor(name:String))(
this.name = name
)
}
const person = new Person('你好')
console.log(person.name)
以上过于复杂 还有更简单的方法
class Person{
//public name:String;
constructor(public name:String)){
//this.name = name
}
}
const person = new Person('你好')
console.log(person.name)
再来说下constructor的一些应用:比如说在一个类中子类可以继承父类
class Person{
constructor(public name:String)){}
}
const Teacher extends Person{
constructor(public age:number){}
}
//这个时候你会发现在子类中的构造器会报错 那咋不报错那
//首先需要调用一下父类本身的构造器的同时还需要传入父类的参数
const Teacher extends Person{
constructor(public age:number){
super('dell')
}
}
const teacher = new Teacher(29)
console.log(teacher)