- Object.is(val1,val2)判断两个值是否相等,和等号的差别在哪里?结合其他文档,我只看到了,在判断NaN的时候,这个会判定为true,等号会判定为false。
- Object.assign(obj1,obj2)合并两个对象,返回一个新对象,如果存在相同的属性,后者会覆盖前者。
- Object.setPrototypeOf()和Object.getPrototypeOf()设置和获取对象的原型对象。
const school = {
name : "小魔仙幼儿园"
}
const cities = {
xiaoqu : ['北京','上海','深圳']
}
// 并不建议这么做
Object.setPrototypeOf(school,cities);
console.log(Object.getPrototypeOf(school));
- 对于上述3获取设置对象的原型对象的方法,也可以通过Object.create去设置
Object.create(proto, [propertiesObject])
Object.create() 方法用于创建一个新对象,使用现有的对象来作为新创建对象的原型(prototype),第二次参数,是对属性特性的描述。
let obj1 = {name:'winie',honey:true};
let obj2 = Object.create(obj1,{age:{value:2,writable:true}})
上述例子中,name和honey存在在原型对象上,age是obj2的自有属性。