js ES8对象方法扩展

1.Object.values()方法返回一个给定对象的所有可枚举属性值的数组
2. Object.entries()方法返回一个给定对象自身可比案例属性[key,value]的数组
3.Object.getOwnPropertyDescriptions()方法返回指定对象所有自身属性的描述对象
        // Object.values()方法返回一个给定对象的所有可枚举属性值的数组
        // Object.entries()方法返回一个给定对象自身可比案例属性[key,value]的数组
        // Object.getOwnPropertyDescriptions()方法返回指定对象所有自身属性的描述对象
        // 生命对象
        const company = {
            name:"字节跳动",
            cities:["北京","上海","深圳"],
            job:["前端","java","大数据","运维"]
        }
        // 获取对象所有的键
        console.log(Object.keys(company));//['name', 'cities', 'job']
        // 获取对象所有的值
        console.log(Object.values(company));//['字节跳动', Array(3), Array(4)]
        // entries
        console.log(Object.entries(company));//[Array(2), Array(2), Array(2)]
        // 创建Map
        const m = new Map(Object.entries(company));
        console.log(m);//Map(3) {'name' => '字节跳动', 'cities' => Array(3), 'job' => Array(4)}
        console.log(m.get('cities'));//['北京', '上海', '深圳']

        // 对象属性的描述对象 深拷贝对象特性去给新对象配置相同类型特性
        console.log(Object.getOwnPropertyDescriptors(company));//{name: {…}, cities: {…}, job: {…}}

        const obj = Object.create(null, {
            name: {
                // 设置值
                value: '字节跳动',
                // 属性特性
                writable: true,
                configurable: true,
                enumerable: true
            }
        })

 

posted @ 2021-09-26 23:10  jerryfish  阅读(88)  评论(0编辑  收藏  举报