1. 如何将一个属性设置为不可迭代的
var obj = {
name:"terry"
}
Object.defineProperty(obj,"weight",{
configurable:true,
enumerable:false,
value:"240斤"
})
2. 如何设置一个只读属性
Object.defineProperty(obj,"gender",{
configurable:true,
enumerable:true,
writable:false,
value:"男"
})
3.如何监听某个属性的改变
这个原理是vue的本质原理。vue是数据驱动框架,当数据发生改变的时候,视图自动更新。
Object.defineProperty(obj,"age",{
configurable:true,
enumerable:true,
set:function(v){ // 在obj.age = 22
console.log("生日到了,准备礼物...");
this._age = v;
},
get:function(){
return this._age; //在访问obj.age调用
}
})
obj.age = 22;