DMQ / mvvm

剖析vue实现原理,自己动手实现mvvm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

在observer.js中 您重写了默认的Observer.prototype 那么this.walk(data) 还能正确的找到walk这个方法吗

blinkMyEyesConsciously opened this issue · comments

var Observer = function Observer (value) {
this.value = value;
this.dep = new Dep();
this.vmCount = 0;
def(value, 'ob', this);
if (Array.isArray(value)) {
var augment = hasProto
? protoAugment
: copyAugment;
augment(value, arrayMethods, arrayKeys);
this.observeArray(value);
} else {
this.walk(value);
}
};

Observer.prototype.walk = function walk (obj) {
    var keys = Object.keys(obj);
    for (var i = 0; i < keys.length; i++) {
        defineReactive(obj, keys[i]);
    }
};

这是尤大的写法
你是直接用字面量的方式进行重写
在学习你的代码的过程中发现按照你的写法显示walk 为定义

commented

@blinkMyEyesConsciously 有具体的代码例子吗?这里的代码应该是没问题的