静态方法

assign(es6)

  1. Object.assign(target, source1, source2, ...)
  • 用于合并对象,将源对象(source)的所有可枚举属性,复制到目标对象(target)上
    • 如果属性重复,会使用源对象的属性值
    • 属于浅拷贝,只复制第一层属性的值
  • 返回target对象,source对象可以是多个

keys(es8)

Object.keys(object)
  • 返回一个数组,由对象中可枚举属性的key组成

values(es8)

Object.values(object)
  • 返回一个数组,由对象中可枚举属性的value组成

entries(es8)

Object.entries(target)
  • 返回一个数组,由对象中可枚举属性的键值对组成
  • 每个元素都是一个数组,第一个元素是key,第二个数组是value

rest

getOwnPropertyDescriptors(es8)

Object.getOwnPropertyDescriptors(obj)
  • 获取一个对象中所有自身属性的描述符对象
  • 参数说明
    • obj:需要查找的目标对象
  • 返回一个对象,属性值是对应的描述符对象;如果传入空对象,则返回空对象

getOwnPropertyDescriptor(es8)

Object.getOwnPropertyDescriptor(obj, key)
  • 获取一个对象中某个属性的描述符对象
  • 参数说明
    • obj:需要查找的目标对象
    • key:目标对象内属性名称
  • 返回描述符对象,如果没有指定属性,则返回undefined

rest

Object

Object Spread

const a = { a: 1 }
const b = {
    ...a,
  b: 2
}

将操作对象中的所有属性都打散复制给所在对象,实现了浅拷贝