12. TypeScript 类的 Getter、Setter 和 static 使用
有小伙伴问了,学了类的访问类型private,那这个东西如何使用?其实它的最大用处是封装一个属性,然后通过 Getter 和 Setter 的形式来访问和修改这个属性。
类的 Getter 和 Setter
我们新建一个文件Demo12.ts,然后声明一个XiaoJieJie(小姐姐)类,都知道小姐姐的年龄是不能随便告诉人,所以使用了private,这样别人就都不知道她的真实年龄,而只有她自己知道。
代码如下:
class Xiaojiejie {
constructor(private _age:number){}
}
如果别人想知道,就必须通过getter属性获取,注意我这里用的是属性,对它就是一个属性。getter属性的关键字是get,后边跟着类似方法的东西,但是你要注意,它并不是方法,归根到底还是属性。
class Xiaojiejie {
constructor(private _age:number){}
get age(){
return this._age
}
}
const xiaofnag = new Xiaojiejie(28)
console.log(xiaofang.getAge)
这时候你会觉的这么写不是多此一举吗?玄妙就在于getter里,我们可以对_age进行处理,比如别人问的时候我们就偷摸的减少 10 岁。代码可以写成这样。
class Xiaojiejie {
constructor(private _age:number){}
get age(){
return this._age-10
}
}
这时候小芳的年龄就变成了迷人的 18 岁,是不是通过这个小例子,一下子就明白了private和getter的用处。 _age是私有的,那类的外部就没办法改变,所以这时候可以用setter属性进行改变,代码如下:
class Xiaojiejie {
constructor(private _age:number){}
get age(){
return this._age-10
}
set age(age:number){
this._age=age
}
}
const xiaofang = new Xiaojiejie(28)
xiaofang.age=25
console.log(xiaofang.age)
其实setter也是可以保护私有变量的,现在小芳的年龄输出是 15 岁,这肯定不行,不符合法律哦,这样是我们在setter里给他加上个 3 岁,就可以了。
set age(age:number){
this._age=age+3
}
这是想通过这个例子让小伙伴们清楚的明白getter和setter的使用,很多小伙伴刚学这部分,都不太清楚为什么要使用getter和setter,你也能更清楚private访问类型的意义。
类中的 static
学习类,都知道要想使用这个类的实例,就要先New出来(),但有时候人们就是喜欢走捷径,在他们有对象的情况下,也想享受青春的躁动,有没有方法?肯定是有方法的。
比如我们先写一下最常规的写法:
class Girl {
sayLove() {
return "I Love you";
}
}
const girl = new Girl();
console.log(girl.sayLove());
但是现在你不想new出对象,而直接使用这个方法,那 TypeScript 为你提供了快捷的方式,用static声明的属性和方法,不需要进行声明对象,就可以直接使用,代码如下。
class Girl {
static sayLove() {
return "I Love you";
}
}
console.log(Girl.sayLove());
好了,这节我们就学到了这里,复习一下,我们学了private的使用意义,学了getter和setter属性,还学习了静态修饰符static,这样就不用 new 出对象就可以使用类里的方法了。
以上关于12. TypeScript 类的 Getter、Setter 和 static 使用的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 12. TypeScript 类的 Getter、Setter 和 static 使用
微信
支付宝