• 获取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
    }
     
     
     
     
    哈哈哈 还有什么的话欢迎补充
  • 相关阅读:
    .net大文件上传
    java文件上传和下载
    文件上传系统
    plupload上传大文件
    代码坏味道之夸夸其谈的未来性
    freemarker中的substring取子串
    【翻译自mos文章】在Oracle GoldenGate中循环使用ggserr.log的方法
    3种浏览器性能測试
    SDUTOJ 2772 KMP简单应用
    C++库研究笔记--用__attribute__((deprecated)) 管理过时代码
  • 原文地址:https://www.cnblogs.com/lwwen/p/11585130.html
Copyright © 2020-2023  润新知