要想监听属性的变化,首先需要通过Object.defineProperty()为需要监听的属性设置一个代理。通过改变代理的值,触发set和get的方法,在这两个方法中我们编写我们想要的操作。
//Object.defineProperty()
//当为obj.age赋值的时候就会调用set/get方法,达到静态age值改变的目的
var obj = {name:"terry",age:1}
Object.defineProperty(obj,"age",{设置age为代理
configurable:true,
set(){console.log("检测到了数据的变化")},
get(){}
})
obj.age++;