//原本监听对象属性, 使用definProperty
// Proxy 对象
const person = {
name:'zce',
age: 20
}
// 第一个参数为目标对象,第二个也是对象, 为代理的处理对象
const personProxy = new Proxy(person,{
get(target,property){
return property in target ? target[property]: "default"
// console.log(target,property)
// return 100
},
set(target,property,value){
console.log(target,property,value)
if(property==='age'){
if(!Number.isInteger(value)) {
throw new TypeError(`${value} is not an int`)
}
}
target[property] = value
}
})
personProxy.age = 20
console.log(personProxy.age)
console.log(personProxy.hhh)