let arr = [1,2,3]
let proxy = new Proxy(arr,{
// 获取值时触发
get(target,key,receiver){
console.log('获取值');
// Reflect和Proxy都是成对出现的 (Reflect一般被叫做反射)
// const res = Reflect.get(target,key,receiver) 这句话其实就相当于 target[key]
// 参数receiver 没有用到也可以把它传进去 没有影响
const res = Reflect.get(target,key,receiver)
console.log(res);
return res
},
// 获取值时触发
set(target,key,value,receiver){
console.log('设置值');
// 当是设置值时 Reflect.set(target,key,value,receiver) 相当于 target[key] = value
// 返回值是true或者false代表设置成功或者失败
const res = Reflect.set(target,key,value,receiver)
console.log(res);
return res
}
})
proxy[0] // 获取值 1
proxy[0] = 100 // 设置值 true