var obj = {
name:"terry",
_age:12 //加_默认为私有属性,没有实际作用
}
//为_age设置一个代理age,改变_age提供age即可
Object.defineProperty(obj,"age",{
configurable:true,//属性可配置
set:function(v){
console.log("age发生了改变")
this._age=v;
},
get:function(){
return this._age;
}
})
obj.age = 13;
要想监听属性的变化,首先需要通过Object.defineProperty()为需要监听的属性设置一个代理。通过改变代理的值,触发set和get的方法,在这两个方法中我们编写我们想要的操作。
如vue中数据驱动,自动重新渲染。当我们的值发生改变后,在function里面重新渲染页面。