var obj = newObject(); var value; Object.defineProperty(obj,'name',{ get: function () { console.log(`get${obj['name']} `); return value;//必须return一个值,作为name属性的值 }, set: function (newvalue) { console.log('set it'); value = newvalue;//同步把value的值进行更新 } }); console.log(obj); console.log(obj.name);//get it obj.name = ’aaaaa‘;//set it console.log(obj.name);//get it
vue2中使用defineProperty中实现数据侦听
建立一个html文件,dom结构如下
1
<div class="wrapper"></div>
编写侦听函数
1 2 3 4 5 6 7 8
functionobserve(target) { if (typeof target !== "null" && typeof target !== "object") { return target; } for (let key in target) { defineReactive(target, key, target[key]); } }