Object.defineProperty()方法,在对象上定义一个新属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="root">
</div>
<script>
let number = 18
let person = {
name: '张三',
sex: '男',
}
Object.defineProperty(person, 'age', {
// value: 18,
// enumerable: true, //控制属性是否可以枚举,默认false
// writable: true, //控制属性是否可以修改
// configurable: true, //控制属性是否可以被删除
//当有人读取person的age属性时,get函数(getter)会被调用,返回值是age的值
get() {
return number;
},
//当有人修改person的age属性时,set函数(setter)会被调用,且会收到修改的具体值
set(value) {
console.log('有人修改了age属性,值为', value);
number = value;
}
})
console.log(person);
</script>
</body>
</html>