ES6 对象新增API
2020-02-06 本文已影响0人
熬得萨菲
Object(是函数)的新增 API: 下面的方法都是 Object 函数上面的方法
- Object.is
用于判断两个数据是否相等,基本上跟严格相等(三个等号)是一致的,除了一下两点:
- NaN 和 NaN 相等
- +0 和-0 不相等
// 但是是不符合常理的,因为js是安装二进制存储的,他们的符号不一样肯定就不想等
console.log(NaN === NaN); // false
console.log(+0 === -0); // true
// es6
console.log(Object.is(+0, -0)); // false
console.log(Object.is(NaN, NaN)); // true
-
Object.assign
-
Object.getOwnPropertyNames 的枚举顺序
排序顺序如下:
- 先排数字,并按照升序排序
const obj = {0: 'a', 5: 'b', 3: 'c'};
Object.getOwnPrototyNames(obj) // ['0', '3', '5']
- 再排其它,按照书写顺序排序
- Object.setPrototypeOf --- 可以用在圣杯模式,但是没有必要,因为 es6 有了更牛逼的方法。
- 该函数用于设置某个对象的隐式原型,也就是修改原型,之前是很难做到的,现在比较简单
Object.setPrototypeOf(obj1, obj2)
相当于: `obj1.__proto__ = obj2`