/*
*
Object.defineProperty(person,'name',{
configurable:false,//能否使用delete、能否需改属性特性、或能否修改访问器属性、,false为不可重新定义,默认值为true 是否可以编辑
enumerable:false,//对象属性是否可通过for-in循环,flase为不可循环,默认值为true 是否可以枚举遍历
writable:false,//对象属性是否可修改,flase为不可修改,默认值为true
value:'' //对象属性的默认值,默认值为undefined
});
* */
var sharedPropertyDefinition = {
enumerable: true,
configurable: true,
get: noop,
set: noop
};
// 设置 监听 观察者, 该函数是可以让 对象中的三级key 直接冒泡到1级key中
//比如 name 只能在Odata.data.name 获取到数据,执行 proxy(Odata,'data','name')之后可以Odata.name 获取值
function proxy(target, sourceKey, key) {
sharedPropertyDefinition.get = function proxyGetter() {
return this[sourceKey][key]
};
sharedPropertyDefinition.set = function proxySetter(val) {
this[sourceKey][key] = val;
};
Object.defineProperty(tar
Vue源码分析——第二章
最新推荐文章于 2022-10-18 17:22:34 发布