一、this
由vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再是vue实例了。
二、数据代理(object.defineProperty)
Object.defineProperty(obj, prop, descriptor)
-
getter和setter
let obj1 = {x:100};
let obj2 = {y:200};
Object.defineProperty(obj2, 'x', {
// 当读取obj2的x属性时,get函数(getter)就会被调用,且返回值就是x的值
get() {
console.log('拿obj1的x了');
return obj1.x
},
// 当修改obj2的x属性时,set函数(setter)就会被调用,且会收到一个具体修改的值value
set(value) {
console.log('给obj1的x赋值');
obj1.x = value
}
})
2.扩展:其他配置项?
let person={
name:'张三',
sex:'男',
age:18
}
//eg1:
Object.defineProperty(person,'age',{value:18})
-
enumerable:true //控制属性是否可以枚举。 -
writable:true //控制属性是否可以被修改,默认是false。
-
configurable:true //控制属性是否可以被删除,默认是false。
|