zoukankan      html  css  js  c++  java
  • 获取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
    }
     
     
     
     
    哈哈哈 还有什么的话欢迎补充
  • 相关阅读:
    mysql之SQL入门与提升(一)
    数据库的主键和外键
    mysql项目实战经验
    浅谈设计模式
    记录下sparkStream的做法(scala)
    hive-hbase-handler方式导入hive表数据到hbase表中
    订单风险系统BI
    关于maven 把插件依赖一起打包进jar问题
    一些hbase的shell查询语句
    关于hive表同步类型问题
  • 原文地址:https://www.cnblogs.com/lwwen/p/11585130.html
Copyright © 2011-2022 走看看