2022.05.27
class Observer {
constructor(data) {
this.defineReactive(data);
}
defineReactive(data) {
Object.keys(value).forEach((key) => {
reactive(value, key, value[key]);
});
}
reactive(obj, key, val) {
// 补充
Object.defineProperty(obj, key, {
enumerable: true,
configurable: true,
get: function () {
console.log(`get key: ${key} val: ${val}`);
return val;
},
set: function () {
console.log(`set key: ${key} val: ${newVal}`);
// 还记得我们上面讨论的闭包么
// 此处将新的值赋给val,保存在内存中,从而达到赋值的效果
val = newVal;
},
});
}
}
const data = {
info: {
name: "lily",
},
};
new Observer(data);Access-Control-Allow-Origin: * // 用来做什么?
最后更新于