目录
数据代理
Object.defineProperty
常见属性值
<body>
<script type="text/javascript">
let person={
name:"kc",
sex:"男"
}
Object.defineProperty(person,'age',{
value:18,
enumerable:true,//控制属性是否可以枚举(遍历),默认是false
writable:true,//控制属性是否可以修改,默认是false
configurable:true//控制属性是否可以删除,默认是false
}
)
console.log(Object.keys(person))//遍历
// console.log(person)
</script>
</body>
get和set函数
<body>
<script type="text/javascript">
let num=20;
let person={
name:"kc",
sex:"男"
}
Object.defineProperty(person,'age',{
//当有人读取person的age属性时get函数(getter)就会被调用,且返回值就会age的值
//原始写法 get:function(){} ----> 简写 get(){}
get() {
console.log("age属性被访问了")
return num
},
//当有人修改age属性的值时,set函数就会被调用
set(value) {
console.log("age的值被修改了,值为"+value)
num=v