TS学习笔记06 修饰符
用来控制属性或方法的访问范围
- public(公开):可以在任何地方访问
- protected(受保持):可以在当前类和子类中访问,在类的外部无法访问
- private(私有):只能在当前类中访问
我们来看下面代码:
首先定义一个类,这个类中定义的几个变量分别对应被不同的修饰符所修饰。
class Person{
public name:string = 'tom'; // 默认就是public修饰符
protected age:number = 18;
private hobby:string = 'game';
// 不允许直接访问该属性,命名上一般以下划线_开头
private _sex:string = 'male';
// 静态属性,属于整个类,并不属于某个实例所特有
static address:string = '南京';
show(){
console.log(this.name);
console.log(this.age);
console.log(this.hobby);
}
}
然后我们继承这个类:
class Student extends Person {
print(){
console.log(this.name);
console.log(this.age);
console.log(this.hobby); // 无法访问
}
}
那么在类的外面访问可以吗?
显然除了pubilc修饰的其余都不行。
let p = new Person();
p.show();
console.log(p.name);
console.log(p.sex); // 无法访问
console.log(p.hobby); // 无法访问
当然,这个修饰符对于方法里面的函数也是同样适用的。