赞
踩
let obj = {};
// 给对象定义一个属性
Object.defineProperty(obj, “name”, {
get() {
console.log(“我获取的”);
},
set() {
console.log(“我设置的”);
}
})
// 我设置的
obj.name = 123;
// 我获取的
obj.name
// v-model用的核心的方法 // v - model: Object.defineProperty() // 封装Object.defineProperty()方法 //vue双向绑定原理 拦截原理 function createProperty(obj) { let keys = Object.keys(obj); keys.forEach((item, index) => { objFn(obj, item, obj[item]) }) return obj; } function objFn(obj, item, val) { Object.defineProperty(obj, item, { get() { console.log(`${item}获取`) }, set(newVal) { console.log(`${item}设置`) val = newVal } }) } let car = createProperty({ a: 1, b: 2 }) //a设置的 car.a = 11111; //b设置的 car.b = 11111; // b获取的 car.b
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。