typescript:存取器getter和setter

 get 必须要有返回值,set 至少要有一个参数。

只有get没有set,那fullname是只读属性只可访问不可修改。

只有set没有get,那fullname属性也访问不到。因为nameObj对象里并没有fullname这个属性,返回的是undefined。

当访问某个属性时nameObj.fullName,get执行。

当设置(修改)某个属性时nameObj.fullName = '水镜_月明',set执行

class People{
	firstName:string
	lastName:string
	constructor(first:string, last:string) {
		this.firstName = first
		this.lastName = last
	}
	get fullName() {
		console.log('get中......')
		return this.firstName+this.lastName
	}

	set fullName(strArgs) {
		console.log('set中......')
		var nameArr = strArgs.split('_')
		console.log(nameArr) //["水镜", "月明"]
		this.firstName = nameArr[0]
		this.lastName = nameArr[1]
	}
}

var nameObj = new People('诸葛','孔明')
console.log(nameObj) //People {firstName: "诸葛", lastName: "孔明"}
console.log(nameObj.fullName) //诸葛孔明
// nameObj.fullName = '水镜_月明' //只有get没有set,那fullname是只读属性只可访问不可修改。
nameObj.fullName = '水镜_月明'
// console.log(nameObj.fullName)//undefined  只有set没有get,那fullname属性也访问不到。因为nameObj对象里并没有fullname这个属性,返回的是undefined。
console.log(nameObj.fullName) //水镜月明

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值