在vue源码中,对this.key做了代理,比如data(){retrun {
message:'mess'
}},我们访问this.message,其实是访问this._data.message
是在instate的时候,对data进行了proxy
var sharedPropertyDefinition = {
enumerable: true,
configurable: true,
get: noop,
set: noop
}
function proxy(target, sourceKey, key) {
sharedPropertyDefinition.get = function proxyGetter() {
return this[sourceKey][key]
}
sharedPropertyDefinition.set = function proxySetter(val) {
this[sourceKey][key] = val
}
Object.defineProperty(target, key, sharedPropertyDefinition)
}