Vue的双向数据绑定原理vue.js利用数据劫持结合发布订阅者模型,通过Object.defineProperty()劫持各个属性的setter和getter。当数据发生变化时向订阅者发布消息并触发相应的监听回调。Demoletnumber=18;letperson={name:'张三',sex:'男'}Object.difineProperty(person,'age',{//value:18,//可以设置默认值//enmerable:true,//控制属性是否可以枚举,默认false//writable:true,//控制属性是否可以修改,默认false//configurable:true//控制属性是否可以删除,默认false//当有人读取到该人的年龄属性时,会调用get函数(getter),返回值为年龄值get(){console.log('有人读取到年龄属性')returnnumber;}//当有人修改了人的年龄属性is时,会调用set函数(setter),修改具体的值set(newVal){console.log('有人修改了年龄属性,值为',newVal)数字=值}})
