对象的扩展
简洁表示法:直接写入变量和函数作为对象的属性和方法({ prop, method() {} })
属性名表达式:字面量定义对象时使用[]定义键([prop],不能与上同时使用)
方法的name属性:返回方法函数名
属性的可枚举性和遍历:描述对象的enumerable
super关键字:指向当前对象的原型对象(只能用在对象的简写方法中method() {})
Object.is():对比两值是否相等
Object.assign():合并对象(浅拷贝),返回原对象
Object.getPrototypeOf():返回对象的原型对象
Object.setPrototypeOf():设置对象的原型对象
__proto__:返回或设置对象的原型对象
2017新增
2018新增
扩展应用
克隆对象:const obj = { __proto__: Object.getPrototypeOf(obj1), ...obj1 }
合并对象:const obj = { ...obj1, ...obj2 }
转换字符串为对象:{ ..."hello" }
转换数组为对象:{ ...[1, 2] }
与对象解构赋值结合:const { x, ...rest/spread } = { x: 1, y: 2, z: 3 }(不能复制继承自原型对象的属性)
修改现有对象部分属性:const obj = { x: 1, ...{ x: 2 } }
2019新增
Object.fromEntries():返回以键和值组成的对象(Object.entries()的逆操作)
原文:https://www.cnblogs.com/lijinxiao/p/11647797.html