Object.keys(obj).forEach(key =>{
let value = obj[key]})
开始监听对象值的改变
原来的属性不好监听,把原来的属性全部重新通过Object.definePorperty重新定义一遍
Object.keys(obj).forEach(key =>{
let value = obj[key]
Object.defineProperty(obj,key,{
set(newValue){
console.log(`监听${
key}的改变`)},get(){
console.log(`获取${
key}对应的值`)return value
}})})
classWatcher{
constructor(name){
this.name = name
}update(){
console.log(`${
this.name}发生更新了`)}}
一旦属性(message)发生改变,就回去调用class Dependenc里的notify方法
Object.keys(obj).forEach(key =>{
let value = obj[key]
Object.defineProperty(obj,key,{
set(newValue){
console.log(`监听${
key}的改变`)
value = newValue
dependency.notify()// 调用notify,谁用谁改变},get(){
console.log(`获取${
key}对应的值`)return value
}})})