天天看点

四、typescript类属性的封装

类属性的封装:通过属性的修饰符实现

  • private:只有在类的内部进行访问和修改
  • public:可以在任意位置访问和修改。默认时public
  • protected:可以在当前类和当前类的子类中访问和修改

属性的修饰符,如果是private,那么在类的外边通过getter 和 setter 方法 来存取属性;

1 class MyClass {
 2     public _name: string
 3     private _age: number
 4     
 5     constructor(){
 6         this._name="aa";
 7         this._age=12;
 8     }
 9     /**
10      * 读取属性
11      * ts中的getter方式
12      * @returns 
13      */
14     get age(){
15         return this._age;
16     }
17     /**
18      * 设置属性
19      * ts中的setter方式
20      * @param value 
21      */
22     set age(value:number){
23         this._age = value;
24     }
25      

调用方式:

1 const aaa = new MyClass();
2 aaa._name="q";
3 console.log(aaa.age);//调用getter   12
4 aaa.age=2;//调用setter 
5 console.log(aaa);// {_name: 'q', _age: 2}      

类的简略写法:

1 class C{
2     constructor(public name:string,public age:number){
3        
4     }
5      

等同于:

1 class C{
2     name:string;
3     age:number;
4     constructor(name:string,age:number){
5         this.age =age;
6         this.name=name;
7     }
8      

继续阅读