9-17 程宗武
9-17(ES5)
定义访问器属性
var student = {
name: "朱朝阳",
age: 18,
}
Object.defineProperty(student,"age",{
get:function(){
return this._age // this.age
},
set:function(value){
if(value >= 18 && value <= 60){
this._age = value
}else {
console.log("输入数据有误,无法修改")
}
}
})
student.age = 50
console.log(student.age)
关于访问器属性的get方法存在一定的疑问,如果使用的是假的_age属性,直接调用对象的age属性的话返回的是一个未被定义的值--> undefined 因此我们只需要保护的是原有对象的age属性不被修改为非法的值,而原有的值是不是直接返回就可以了。
点赞
评论