Object.defineProperty(target,key,{})
1.target:目标对象;
2.key:要定义或修改的属性名
3.{}:属性的描述
功能:会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。
属性:1.configurable是否可配的
2.enumerable是否可枚举
3.writable能否修改属性的值
4.value值
5.set
6.get
例1
let obj = {
name: "terry",
age: 12
}
Object.defineProperty(obj, "weight", {
configurable: true,
enumerable: false,
value: 50
})
// 自定义属性
// 不可遍历 可访问
console.log(obj);//{ name: 'terry', age: 12 }
console.log(obj.weight);//50
例2
let obj = {
_name: ""
}
Object.defineProperty(obj, "name", {
set(val) {
this._name = val;
},
get() {
return this._name;
}
})
obj.name = "terry";
console.log(obj.name);//terry