console.log(NaN === NaN); //false console.log(Object.is(NaN,NaN));//true 2.Object.assign()方法可以合并指定对象至目标对象内部 传参,合并所有对象,返回给参数1的目标对象 let obj1={name:'dayfly1',age:100}; let obj2={name:'dayfly2',age:200}; let obj3={gender:'男'}; console.log(Object.assign(obj1,obj2,obj3)); 第一个对象得到合并后的结果 console.log(obj1); (1)如果属性有相同,后面的源对象内容会覆盖之前的属性值 (2)如果直接传入非对象内容,会转换为对象 (3)如果传入的是undefined和null会报错 3. Object.getPrototypeOf() 和 Object.setPrototypeOf() 以obj对象为原型 let f=Object.create(obj); console.log(f.fn()); 检测是obj是否f的原型对象 console.log(Object.getPrototypeOf(f)===obj); //true 输出原型对象的fn console.log(f.fn());
setPrototypeOf(f,obj2)设置f的原型对象为obj2 Object.setPrototypeOf(f,obj2); console.log(Object.getPrototypeOf(f)===obj2);//true console.log(f.fn()); //fn2 4.super关键字,用于原型中方法的继承功能
Object.setPrototypeOf(f,obj); console.log(f.fn());
let h=Object.create(f); console.log(h); console.log(h.fn());