JavaScript 如何获取对象的属性描述符
在这里,我们将讨论JavaScript中对象的属性描述符。Object.getOwnPropertyDescriptor()方法返回一个描述给定对象上特定属性的对象。JavaScript对象可以以多种方式创建,并且可以使用该对象的属性描述符来调用其属性。
语法:
Object.getOwnPropertyDescriptor( obj, prop )
Object.getOwnPropertyDescriptor() 方法有两个输入参数,如下所述:
- obj :它是要描述其属性的对象名称。
- prop :它定义了要返回值的对象中的特定属性。
返回值: 如果对象存在该属性,则该方法返回该属性,否则返回undefined。
示例: 在下面的示例中,创建了一个名为Obj的对象,其中包含两个属性property1和property2。我们使用Object.getOwnPropertyDescriptor() 方法返回与每个属性相关的属性和值。
JavaScript
<script>
// Object
const Obj = {
property1: "GeeksforGeeks",
property2: 12
};
const descriptor1 = Object
.getOwnPropertyDescriptor(Obj, 'property1');
const descriptor2 = Object
.getOwnPropertyDescriptor(Obj, 'property2');
console.log(descriptor1.configurable);
// expected output: true
console.log(descriptor1.enumerable);
// expected output: true
console.log(descriptor1.value);
// expected output: GeeksforGeeks
console.log(descriptor2.value);
// expected output: 12
</script>
输出:
true
true
GeeksforGeeks
12
描述符:
一个对象的属性描述符由以下一些属性组成,用于定义每个属性:
- value: 它是与被调用属性相关联的值
- writable: 它指示属性是否可以被改变。只有当属性可以被修改时才返回true
- enumerable: 如果在对应对象的属性枚举期间,该属性可见,则返回true
- configurable: 它指示属性描述符是否可以被更改或从对应对象中删除
示例: 下面的示例描述了与对象Obj相关的property1和property2的属性。
JavaScript
<script>
const Obj = {
property1: "GeeksforGeeks",
property2: 12
};
const descriptor1 = Object
.getOwnPropertyDescriptor(Obj, 'property1');
const descriptor2 = Object
.getOwnPropertyDescriptor(Obj, 'property2');
console.log(descriptor1);
console.log(descriptor2);
</script>
输出:
{value: 'GeeksforGeeks', writable: true, enumerable: true, configurable: true}
configurable: true
enumerable: true
value: "GeeksforGeeks"
writable: true
[[Prototype]]: Object
{value: 12, writable: true, enumerable: true, configurable: true}
configurable: true
enumerable: true
value: 12
writable: true
[[Prototype]]: Object
极客教程