对象的属性分为两种,即数据属性和访问器属性
数据属性专门用来储存数据
访问器属性不储存数据,而是定义了get函数和set函数,每当读取属性时,就会调用get函数;每当设置属性时,就会调用set函数。set函数有参数。
<script>
var obj = {
// 数据属性
name: '张三',
age: 19,
gender: '男',
// 访问器属性
get getName() {
console.log('属性被访问了');
if (this.age >= 19) {
return this.name;
} else {
return null;
}
},
set setName(value) {
console.log('属性被修改了');
if (this.age >= 18) {
this.name = value;
} else {
alert('您当前没有权限');
};
}
};
// 访问属性
console.log(obj.getName);
// 设置属性
obj.setName = '李四';
console.log(obj);
</script>
访问器属性可以用来设置条件,以达到不同的属性值,返回不同的结果的目的
如上述代码所示,
当读取属性时,如果age>=19,则获取结果为name,如果<19,则获取结果为null
当设置属性时,如果传入数据的age<18,就会弹出警告框“您当前没有权限”