场景
2023年10月18日
一、对象监听
function defineReactive(obj,key,val){
Object.defineProperty(obj,key,{
enumerable: true,
configurable: true,
get(){
console.log("get 拦截")
return val;
},
set(newVal){
console.log("set 拦截")
val = newVal;
}
});
}
function observe(obj){
for(let key in obj){
defineReactive(obj,key,obj[key]);
}
return obj;
}
const obj = observe({
a: 1,
b: 2
});
obj.a;
obj.a = 2;
console.log(obj)