(资料图片仅供参考)

扩展:属性描述符有两种:

数据描述符。具有值的属性。存取描述符。由 getter 和 setter 函数对属性的描述。一个属性只能是其中的一种描述符。

描述符通用属性:

configurable —— 布尔值,默认值为 false 。若值为 true,则表示这个属性描述符可以被改变,同时该属性也能从对象上删除。enumerable —— 布尔值,默认值为 false。表示是否能枚举数据描述符特有的属性:

value —— 该属性的值,默认值为 undefinedwritable —— 布尔值,默认值为 false,表示是否能重写。存取描述符特有的属性:

get:function —— 默认值为 undefined,当访问该属性时,该方法会被执行。set:function —— 默认值为 undefined,当属性修改时,触发执行改方法,该方法接收一个参数,就是该属性新的值。Object.entries(obj)该方法返回对象 obj 自身的可枚举属性的键值对数组。结果是一个二维数组,数组中的元素是一个由两个元素 key ,value 组成的数组。

let person = {name:"jonas",age:18}let arr = Object.entries(person)console.log(arr)//[["name", "jonas"],["age", 18]]123该方法的使用场景是:将普通的对象转换为 Map:

let person = {name:"jonas",age:18}let map = new Map(Object.entries(person))console.log(map)//Map(2) {"name" => "jonas", "age" => 18}123相似的,还有两个方法可以取出对象的键名或键值:

Object.keys(obj) —— 返回一个对象中的可枚举属性组成的数组Object.values(obj) —— 返回一个对象中的可枚举属性值组成的数组。

推荐内容