• 获取Object对象属性的方法,Reflect.ownKeys, Object.getOwnPropertyNames,Object.getOwnPropertySymbols,Object.keys,for in


    let triangle={
    a:1,
    b:2,
    c:3
    }
    function coloTriangle(){
    this.color='red';
    }
    coloTriangle.prototype=triangle;
    let color=new coloTriangle();
    Object.defineProperty(color,'auto',{
    value:'auto'
    })
    let symbolProp=Symbol('symbol');
    color[symbolProp]='symbol'
    /**
    * Reflect.ownKeys:Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols)
    * 没有来自继承的,都是own
    * 不管枚举不枚举都能遍历
    * 还可以拿到symbol类型属性
    */
    Reflect.ownKeys(color) //["color","auto",Symbol(symbol)]
    /**
    * Object.getOwnPropertyNames
    * 没有来自继承,都是own
    * 不管枚举不枚举都能遍历
    * 拿不到symbol类型属性
    */
    Object.getOwnPropertyNames(color);//["color","auto"]
    /**
    * Object.getOwnPropertySymbols
    * 只能own
    * 也不管枚举不枚举
    * 只能拿到Symbol类型属性
    */
    Object.getOwnPropertySymbols(color);//[Symbol(symbol)]
    /**
    * Object.keys就有点矫情了
    * 只能是own
    * and 要枚举才行
    * 拿不到Symbol类型属性
    *
    */
    Object.keys(color);//["color"]



    /**
    * for in 就是也是取其一把
    * 不需要own,可以来自继承属性
    * 但是一定会要枚举
    * 拿不到Symbol类型属性
    */
    for(let i in color){
    console.log(i);//color a b c
    }
     
     
     
     
    哈哈哈 还有什么的话欢迎补充
  • 相关阅读:
    一次蜿蜒曲折的RFID破解之路
    无线安全渗透测试套件WiFi-Pumpkin新版本发布
    交易系统 1代
    angular-ui分页组件
    付款
    [译]AngularJS Services 获取后端数据
    [译]AngularJS中DOM操作
    [译]AngularJS $apply, $digest, 和$evalAsync的比较
    Angular $watch
    AngularJS中的表单验证
  • 原文地址:https://www.cnblogs.com/lwwen/p/11585130.html
Copyright © 2020-2023  润新知