Object.getOwnPropertyDescriptors (Object) – JavaScript 中文开发手册

作者: Arvin Chen 分类: JavaScript 来源: Break易站(www.breakyizhan.com)
  •   JavaScript 中文开发手册

    Object.getOwnPropertyDescriptors (Object) - JavaScript 中文开发手册

    Object.getOwnPropertyDescriptors() 方法用来获取一个对象的所有自身属性的描述符。

    语法

    Object.getOwnPropertyDescriptors(obj)

    参数

    obj任意对象

    返回值

    所指定对象的所有自身属性的描述符,如果没有任何自身属性,则返回空对象。

    示例

    Object.assign() 方法只能拷贝源对象的可枚举的自身属性,同时拷贝时无法拷贝属性的特性们,而且访问器属性会被转换成数据属性,也无法拷贝源对象的原型,该方法配合 Object.create() 方法可以实现上面说的这些。

    A property descriptor is a record with some of the following attributes:

    value与属性关联的值 (仅限数据描述符). 如果且仅当与该属性关联的值可能被更改时 (仅限数据描述符), 则为可写。

    get用作属性的 getter 的函数; 如果没有 getter (仅限访问器描述符), 则为未定义。

    set用作属性的 setter 的函数; 如果没有 setter (仅限访问器描述符), 则为未定义。

    configurabletrue 如果且仅当此属性描述符的类型可能被更改, 并且该属性可以从相应的对象中删除。

    enumerabletrue 如果且仅当在相应对象的属性枚举过程中显示此属性时。

    示例

    浅拷贝一个对象

    Object.assign()方法只能拷贝源对象的可枚举的自身属性,同时拷贝时无法拷贝属性的特性们,而且访问器属性会被转换成数据属性,也无法拷贝源对象的原型,该方法配合Object.create()方法可以实现上面说的这些。

    Object.create(
      Object.getPrototypeOf(obj), 
      Object.getOwnPropertyDescriptors(obj) 
    );

    创建子类

    创建子类的典型方法是定义子类,将其原型设置为超类的实例,然后在该实例上定义属性。这可能会让尴尬,特别是对于 getters 和 setter 而言。 相反,您可以使用此代码设置原型:

    function superclass() {}
    superclass.prototype = {
      // Define your methods and properties here
    };
    function subclass() {}
    subclass.prototype = Object.create(
      superclass.prototype,
      {
        // Define your methods and properties here
      }
    );

    规范

    Specification

    Status

    Comment

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

    Living Standard

    Initial definition in ECMAScript 2017.

    ECMAScript 2017 (ECMA-262)The definition of 'Object.getOwnPropertyDescriptors' in that specification.

    Standard

    浏览器支持

    Feature

    Chrome

    Edge

    Firefox

    Internet Explorer

    Opera

    Safari

    Basic Support

    54

    (Yes)

    50

    No

    41

    10

    Feature

    Android

    Chrome for Android

    Edge mobile

    Firefox for Android

    IE mobile

    Opera Android

    iOS Safari

    Basic Support

    ?

    54

    (Yes)

    50

    No

    ?

    ?

  •   JavaScript 中文开发手册
  •   本文标题:Object.getOwnPropertyDescriptors (Object) – JavaScript 中文开发手册 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/javascript/33317.html
      微信返利机器人
      免费:淘宝,京东,拼多多优惠券
      腾讯,爱奇艺,优酷的VIP视频免费解析,免费看
      即刻扫描二维码,添加微信机器人!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注