Object.getOwnPropertyDescriptors
⭐️ ES2017(ES8)新特性
Object.getOwnPropertyDescriptors() 方法用于获取一个对象的所有自身 Property 的 Attributes。
语法
语法:
Object.getOwnPropertyDescriptors(obj);
类型声明:
interface TypedPropertyDescriptor<T> {
  enumerable?: boolean;
  configurable?: boolean;
  writable?: boolean;
  value?: T;
  get?: () => T;
  set?: (value: T) => void;
}
interface PropertyDescriptor {
  configurable?: boolean;
  enumerable?: boolean;
  value?: any;
  writable?: boolean;
  get?(): any;
  set?(v: any): void;
}
interface ObjectConstructor {
  getOwnPropertyDescriptors<T>(
    o: T
  ): { [P in keyof T]: TypedPropertyDescriptor<T[P]> } & { [x: string]: PropertyDescriptor };
}
参数说明:
| 参数 | 说明 | 类型 | 
|---|---|---|
| obj | 用于获取 Property 的 Attributes 的对象 | object | 
代码示例
const a = {
  name: 'Ben',
  get age() {
    return '18';
  },
};
Object.getOwnPropertyDescriptors(a);