observer 数据劫持,判断是否递归循环遍历所有层次的属性,然后都添加上geter,seter方法
只要值发生改变,seter就会监听当前发生改变的数据
function Observer(data) {
//在Observer实例上暂存data
this.data = data;
this.walk(data);
}
Observer.prototype = {
walk: function(data) {
var me = this;
//对data里所有的属性名进行遍历
Object.keys(data).forEach(function(key) {
me.convert(key, data[key]);
});
},
convert: function(key, val) {
//为每个属性增加响应式
this