作用:从左到右将多个对象合并到target中,并返回target
特点
const DEFAULTS = {logLevel: 0,outputFormat: 'html'
};
//options对象是用户提供的参数。
function processContent(options) {options = Object.assign({}, DEFAULTS, options);console.log(options);// ...
}
作用:类似===,比较参数1参数2是否相等
特点
===左右两边不会自动进行类型转换===存在的问题 console.log(Object.is(0,-0)) //false
console.log(Object.is(NaN,NaN))//true
Object.is({}, {})// false
Object.keys(obj):返回给定对象的自身可枚举属性组成的数组
Object.values(obj):返回给定对象的自身可枚举属性对应的属性值组成的数组
-Object.entries(obj):返回由对象身可枚举键值对组成的二维数组
使用场景:将对象转为真正的Map结构
const obj = { foo: 'bar', baz: 42 };
const map = new Map(Object.entries(obj));
map // Map { foo: "bar", baz: 42 }
作用:根据键值对组成的列表,创建一个对象
Object.fromEntries()方法是Object.entries()的逆操作,用于将一个键值对数组转为对象。
Object.fromEntries([['foo', 'bar'],['baz', 42]
])
// { foo: "bar", baz: 42 }
作用:返回对象自身+不可枚举+Symbol类型属性的信息组成的一个对象。主要是为了解决Object.assign()无法正确拷贝get属性和set属性的问题。
const obj = {foo: 123,get bar() { return 'abc' }
};Object.getOwnPropertyDescriptors(obj)
// { foo:
// { value: 123,
// writable: true,
// enumerable: true,
// configurable: true },
// bar:
// { get: [Function: get bar],
// set: undefined,
// enumerable: true,
// configurable: true } }
使用场景:完整的拷贝一个对象
Object.setPrototypeOf(对象a,对象b):设置对象a的__proto__指向对象b
Object.getPrototypeOf(对象):获取指定对象的__proto__指向的值,没有返回null