首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Reflect.getOwnPropertyDescriptor

静态方法?Reflect.getOwnPropertyDescriptor()Object.getOwnPropertyDescriptor()方法相似。如果在对象中存在,则返回给定的属性的属性描述符。否则返回undefined

语法

代码语言:javascript
复制
Reflect.getOwnPropertyDescriptor(target, propertyKey)

参数

target需要寻找属性的目标对象。propertyKey获取自己的属性描述符的属性的名称。

返回值

如果属性存在于给定的目标对象中,则返回属性描述符;否则,返回?undefined

异常

抛出一个TypeError,如果目标不是?Object

描述

Reflect.getOwnPropertyDescriptor 方法返回一个属性描述符,如果给定的属性存在于对象中,否则返回?undefined。 与 ?Object.getOwnPropertyDescriptor()的唯一不同在于如何处理非对象目标。

示例

使用Reflect.getOwnPropertyDescriptor()

代码语言:javascript
复制
Reflect.getOwnPropertyDescriptor({x: 'hello'}, 'x');
// {value: "hello", writable: true, enumerable: true, configurable: true}

Reflect.getOwnPropertyDescriptor({x: 'hello'}, 'y');
// undefined

Reflect.getOwnPropertyDescriptor([], 'length');
// {value: 0, writable: true, enumerable: false, configurable: false}

与?Object.getOwnPropertyDescriptor() 的不同点

如果该方法的第一个参数不是一个对象(一个原始值),那么将造成?TypeError错误。而对于Object.getOwnPropertyDescriptor,非对象的第一个参数将被强制转换为一个对象处理。

代码语言:javascript
复制
Reflect.getOwnPropertyDescriptor('foo', 0);
// TypeError: "foo" is not non-null object

Object.getOwnPropertyDescriptor('foo', 0);
// { value: "f", writable: false, enumerable: true, configurable: false }

规范

Specification

Status

Comment

ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Reflect.getOwnPropertyDescriptor' in that specification.

Standard

Initial definition.

ECMAScript Latest Draft (ECMA-262)The definition of 'Reflect.getOwnPropertyDescriptor' in that specification.

Draft

?

浏览器兼容性

Feature

Chrome

Edge

Firefox (Gecko)

Internet Explorer

Opera

Safari

Basic support

49

(Yes)

42 (42)

No support

No support

10

Feature

Android

Chrome for Android

Edge

Firefox Mobile (Gecko)

IE Mobile

Opera Mobile

Safari Mobile

Basic support

No support

49

(Yes)

42.0 (42)

No support

No support

10

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com