defineProperty用法
<div id="app">
<h1>我是一个标题标签{{$options}}</h1>
</div>
defineProperty
Vue.config.productionTip = false;//阻止开发环境提示
let obj = {
name:"zs",
sex:"男",
}
//Object.defineProperty(对象,"插入的属性名称"(需要加引号,不加表示已有的属性修改),{})
Object.defineProperty(obj,"age",{
value:18,
enumerable:true, //当前迭代对象允许被枚举
writable:true, //当前迭代对象允许被修改
configurable:true, //当前迭代对象允许被删除
})
console.log(obj);
//打印每个obj里的value值
for(let x in obj){
console.log(obj[x]);
}
const vm = new Vue({
el:"#app",
data:{
name:"小白",
}
});
get()和set()方法
注意不要添加值
get里返回值
set用变量存起来代替
Vue.config.productionTip = false;//阻止开发环境提示
let obj = {
name:"zs",
sex:"男",
}
let number = 18;
Object.defineProperty(obj,"age",{
get(){
console.log("有人获取了age");
return number;
},
set(value){
console.log("有人修改了age值---"+value);
number = value;
}
})
console.log(obj);
for(let x in obj){
console.log(obj[x]);
}
const vm = new Vue({
el:"#app",
data:{
name:"小白",
}
});
console.log(vm);