在定义时确定属性,属性是可以被更改或者删除的。
let obj={
name:"李义新",
sex:"男"
}
追加属性(第一种)
let obj = {
name: "李义新",
sex: "男",
}
Object.defineProperty(obj, "age", {
value: 100
})
console.log(obj)
因为age是追加的,所以age的颜色比较浅,而且追加的属性默认情况下是能遍历,删除,修改等操作的。
添加对应属性后就可以遍历,删除,修改了。
let obj = {
name: "李义新",
sex: "男",
}
Object.defineProperty(obj, "age", {
value: 100,
enumerable:true, //控制属性是否可以美剧,默认是false
writable:true, //控制属性是否可以被修改,默认值是false
configurable:true //控制属性是否可以被删除,默认值是false
})
追加属性(第二种)
获取age属性时会自动调用对应的get方法获取值。
修改age属性时会自动调用对应的set方法修改值。
let xin = 200;
let obj = {
name: "李义新",
sex: "男",
}
Object.defineProperty(obj, "age", {
get(){
return xin;
}
set(val){
xin = val;
}
})
console.log(obj)