静态方法 Object不是对象是函数
Object.is
判断两个数据是否相等,基本上跟严格相等(===)是一致的 除啦
NaN 与 NaN相等, 在严格相等下是不相等的
+0与-0 不相等, 在严格相等下是相等的
console.log(NaN === NaN); // false
console.log(+0 === -0); // true
console.log(Object.is(NaN, NaN)) //true
console.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) ```