ES8新特性_ECMAScript8_object对象方法扩展

ES8新特性_ECMAScript8_object对象方法扩展

本文主要介绍,ES8新特性_ECMAScript8中新特性对象方法扩展(object methods);1. Object.values()方法:返回一个给定对象的所有可枚举属性值的数组; 2. Object.entries()方法:返回一个给定对象自身可遍历属性 [key,value] 的数组; 3. Object.getOwnPropertyDescriptors()该方法:返回指定对象所有自身属性的描述对象;

对象方法扩展

Object.values、Object.entries 和 Object.getOwnPropertyDescriptors:

  1. Object.values()方法:返回一个给定对象的所有可枚举属性值的数组;
  2. Object.entries()方法:返回一个给定对象自身可遍历属性 [key,value] 的数组;
  3. Object.getOwnPropertyDescriptors()该方法:返回指定对象所有自身属性的描述对象;
// 对象方法扩展
let school = {
    name : "fujuhao",
    age : 22,
    sex : "男"
}
1.获取对象所有的键
console.log(Object.keys(school));

// 打印
(3) ['name', 'age', 'sex']
    0: "name"
    1: "age"
    2: "sex"
    length: 3
    [[Prototype]]: Array(0)
2. 获取对象所有的值
console.log(Object.values(school));

// 打印
(3) ['fujuhao', 22, '男']
    0: "fujuhao"
    1: 22
    2: "男"
    length: 3
    [[Prototype]]: Array(0)
3. 获取对象的entries
console.log(Object.entries(school));

// 打印
(3) [Array(2), Array(2), Array(2)]
    0: (2) ['name', 'fujuhao']
    1: (2) ['age', 22]
    2: (2) ['sex', '男']
    length: 3
    [[Prototype]]: Array(0)
4. 创建map
const map = new Map(Object.entries(school));

console.log(map);
console.log(map.get("name"));

// 打印
Map(3) {'name' => 'fujuhao', 'age' => 22, 'sex' => '男'}
    [[Entries]]
        0: {"name" => "fujuhao"}
        1: {"age" => 22}2: {"sex" => "男"}
        size: 3
        [[Prototype]]: Map
5. 返回指定对象所有自身属性的描述对象
console.log(Object.getOwnPropertyDescriptors(school));

// 打印
{name: {}, age: {}, sex: {}}
    age: {value: 22, writable: true, enumerable: true, configurable: true}
    name:
    configurable: true
    enumerable: true
    value: "fujuhao"
    writable: true
    [[Prototype]]: Object
    sex: {value: '男', writable: true, enumerable: true, configurable: true}
    [[Prototype]]: Object

参考内容:

const obj = Object.create(null,{
    name : {
        // 设置值
        value : "fujuhao.com",
        // 属性特性
        writable : true,
        configuration : true,
        enumerable : true
    }
});

打印预览

es8_object

Loading...