Javascript中的Reflect.getOwnPropertyDescriptor()方法用于获取对象的描述符。它与Object.getOwnPropertyDescriptor方法相同,但是非对象目标的处理方式不同。
用法:
Reflect.getOwnPropertyDescriptor(obj, Key)
参数:该方法接受上述和以下所述的两个参数:
- Obj:此参数保存目标对象,并查找属性。
- Key:此参数用于获取属性名称的自己的属性描述符。
返回值:此方法返回属性描述符对象,如果目标对象不存在,则返回未定义。
异常:当目标不是对象时,TypeError是作为结果给出的异常。
以下示例说明了JavaScript中的Reflect.getOwnPropertyDescriptor()方法:
范例1:
<script>
let object = {
property1:"geeks"
};
console.log(Reflect.getOwnPropertyDescriptor(
object, 'property1').value);
console.log(Reflect.getOwnPropertyDescriptor(
object, 'property2'));
console.log(Reflect.getOwnPropertyDescriptor(
object, 'property1').writable);
let object1 = {
property2:"Javascript"
};
const object3 = {
property3:232
};
console.log(Reflect.getOwnPropertyDescriptor(
object1, 'property2').value);
console.log(Reflect.getOwnPropertyDescriptor(
object1, 'property3'));
console.log(Reflect.getOwnPropertyDescriptor(
object1, 'property2').writable);
console.log(Reflect.getOwnPropertyDescriptor
(object3, "null" ) === undefined
);
</script>
输出:
"geeks" undefined true "Javascript" undefined true true
范例2:
<script>
const object1 = {
property1:"NULL"
};
console.log(Reflect.getOwnPropertyDescriptor(
object1, 'property2'));
console.log(Reflect.getOwnPropertyDescriptor(
object1, 'property1').writable);
console.log(Reflect.getOwnPropertyDescriptor(
object1, 'property1'));
console.log(Reflect.getOwnPropertyDescriptor(
{val:'hello'}, 'val'));
console.log(Reflect.getOwnPropertyDescriptor(
{val1:'hello'}, 'y'));
console.log(Reflect.getOwnPropertyDescriptor(
[], 'length'));
</script>
输出:]
undefined true [object Object] { configurable:true, enumerable:true, value:"NULL", writable:true } [object Object] { configurable:true, enumerable:true, value:"hello", writable:true } undefined [object Object] { configurable:false, enumerable:false, value:0, writable:true }
范例3:调用非对象并发生错误。
<script>
console.log(Reflect.getOwnPropertyDescriptor('foo', 0));
</script>
输出:
Error:Reflect.getOwnPropertyDescriptor called on non-object
支持的浏览器:下面列出了JavaScript Reflect.getOwnPropertyDescriptor()方法支持的浏览器:
- 谷歌浏览器
- IE浏览器
- Firefox
- Opera
- Safari
- Edge
相关用法
- Javascript padStart()用法及代码示例
- Javascript Int8Array from()用法及代码示例
- Javascript Reflect.get()用法及代码示例
- Javascript Reflect.has()用法及代码示例
- Javascript Unit16Array.from()用法及代码示例
- Javascript handler.get()用法及代码示例
- Javascript Int16Array from()用法及代码示例
- Javascript Uint8Array.from()用法及代码示例
- Javascript hasOwnProperty()用法及代码示例
- Javascript compile()用法及代码示例
- Javascript Uint32Array from()用法及代码示例
- Javascript Array from()用法及代码示例
- Javascript Array.from()用法及代码示例
- Javascript handler.has()用法及代码示例
- Javascript exec()用法及代码示例
注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript | Reflect.getOwnPropertyDescriptor() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。