静态方法 Object不是对象是函数
Object.is
判断两个数据是否相等,基本上跟严格相等(===)是一致的 除啦
NaN 与 NaN相等, 在严格相等下是不相等的
+0与-0 不相等, 在严格相等下是相等的
console.log(NaN === NaN); // falseconsole.log(+0 === -0); // trueconsole.log(Object.is(NaN, NaN)) //trueconsole.log(Object.is(+0, -0)) //false
Object.assign
对象混合
具体解释看笔记中的对象混合
const obj1 = {a: 123,b: 456,c: "abc"}const obj2 = {a: 789,d: "kkk"}const obj = Object.assign({}, obj1, obj2);console.log(obj)
Object.getOwnPropertyNames 的枚举顺序
Object.getOwnPropertyNames方法之前就存在,只不过,官方没有明确要求,对属性的顺序如何排序,如何排序,完全由浏览器厂商决定。
ES6规定了该方法返回的数组的排序方式如下:
- 先排数字,并按照升序排序
- 再排其他,按照书写顺序排序const obj = {d: 1,b: 2,a: 3,0: 6,5: 2,4: 1}const props = Object.getOwnPropertyNames(obj)console.log(props)
Object.setPrototypeOf
该函数用于设置某个对象的隐式原型
比如: Object.setPrototypeOf(obj1, obj2),
相当于: obj1.proto = obj2 ```javascript const obj1 = { a: 1 }
const obj2 = { b: 2 }
// obj1.proto = obj2
Object.setPrototypeOf(obj1, obj2)
console.log(obj1) ```
