菜单

目的遍历方法

2019年5月10日 - 皇家前端

各个遍历对象的艺术重回值的不等

澳门皇家赌场 ,松手代码:

    function Obj() {
        // 直接在this上添加属性
        this.prop_this = 'prop_this';
        // 在this上添加symbol属性
        this[Symbol.for('prop_symbol')] = 'prop_symbol';
    }

    // 原型上添加属性
    Obj.prototype.propProto = 'prop_proto';

    const obj = new Obj();

    // 设置遍历属性enumerable设置为否
    Object.defineProperty(obj, 'prop_dontEnum', {
        value: 'prop_dontEnum',
        enumerable: false,
        writable: false,
        configurable: false
    });
  1. getOwnPropertyDescriptors 能够获得具备的本身性质描述

     console.log(Object.getOwnPropertyDescriptors(obj));
     // { 
           prop_this: 
            { value: 'prop_this',
              writable: true,
              enumerable: true,
              configurable: true },
           prop_dontEnum: 
            { value: 'prop_dontEnum',
              writable: false,
              enumerable: false,
              configurable: false },
           [Symbol(prop_symbol)]: 
            { value: 'prop_symbol',
              writable: true,
              enumerable: true,
              configurable: true } 
          }
    
  2. getOwnPropertyNames
    能够获取自己除symbol之外的习性,获取自己symbol值能够动用
    getOwnPropertySymbols

     console.log(Object.getOwnPropertyNames(obj));
     // [ 'prop_this', 'prop_dontEnum' ]
    
     console.log(Object.getOwnPropertySymbols(obj));
     // [ Symbol(prop_symbol) ]
    
  3. for…in 能够取得自己能够枚举除symbol外的性质和原型属性

     for(var i in obj) {
         console.log(i);
     }
     // prop_this  propProto
    
  4. Object.keys 和 Object.values
    都只可以够赢得自己除了symbol外可枚举的品质

     console.log(Object.keys(obj));
     // [ 'prop_this' ]
    
  5. Reflect.ownKeys(obj)能够拿走自己兼备的特性

     console.log(Reflect.ownKeys(obj));
     // [ 'prop_this', 'prop_dontEnum', Symbol(prop_symbol) ]
    

相关文章

发表评论

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

网站地图xml地图