目录
一、概述
1.1 什么是属性描述符?
属性描述符(Property Descriptor)是 ES5 之后出现的概念,顾名思义,它用于描述属性应该是什么样,例如是否只读,能否枚举,能否可配置等。所有对象属性均可使用属性描述符来定义。
1.2 如何获取属性描述符?
1.2.1 获取单个属性的属性描述符
Object 对象提供的 getOwnPropertyDescriptor() 返回指定该对象的属性的属性描述符。
例如:
let obj = {
name: "sh",
age: 21
}
console.log(Object.getOwnPropertyDescriptor(obj, "name"));
参数
- obj:目标对象
- “name”:指定对象中的属性(注意必须带有引号)
1.2.2 获取多个属性的属性描述符
Object对象提供的 getOwnPropertyDescriptors() 返回所有属性的属性描述符。
例如:
let obj = {
name: "sh",
age: 21
}
console.log(Object.getOwnPropertyDescriptors(obj));
1.3 如何设置属性描述符?
如果想要修改某个属性的描述符,Object 对象提供了两种方法:
- Object.defineProperty():此方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。
语法结构如下:
Object.defineProperty(obj, prop, descriptor)
参数
obj:要定义属性的对象。
prop:要定义或修改的属性的名称。
descriptor:要定义或修改的属性描述符。
例如
let obj = {
name: "sh",
age: 21
}
Object.defineProperty(obj, "password", {
})
- Object.defineProperties():此方法直接在一个对象上定义新的属性或修改现有属性,并返回该对象。
语法