跳到主要内容

场景

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)

二、数组监听