es6的对象新增的方法

Object.is

可以看成是=== 的加强版, 其修正了 === 的 NaN 不等于自身, 以及 +0 等于 -0

另外说下, == 会自动转型, 但是 Object.is 也是如果类型不一致也是不相等的

 

Object.assign

用于对象的合并, 可以把对象的所有可以枚举属性复制到目标对象(枚举属性包含原型中的属性吗??? )  (=== 只拷贝原对象的自身属性, 不拷贝继承的, 也不拷贝不可枚举的)

如果原对象和目标对象有相同的属性名, 那么原对象会覆盖掉目标对象中的属性值 (这个可以用来批量修改一个对象中改变的值)

如果传入一个字符串, 那么会以数组的形式拷贝到其中, (这是一个很好的分解字符串的方式) 

可以用来处理数组, 但是当做对象来处理的

拷贝的方式是浅拷贝, 就是对于对象中的对象拷贝的是引用

对于取值函数, 不会拷贝取值函数, 是求值后再拷贝 (什么是取值函数??)

用法总结: 

  1. 为对象添加新的属性

  2. 克隆对象(不克隆原型, 可以使用 Object.create 来指定一个原型)

  3. 合并多个对象

  4. 为属性指定默认的值(覆盖的特性)

Object.getOwnPropertyDescriptors

得到一个对象所有属性的描述对象(注意不是对象, 而是对象的属性)

Object.setPrototypeOf

设置一个对象的原型

Object.getPrototypeOf

得到一个对象的原型

Object.keys

返回一个数组, 其内容是对象的键名

(除了 for in ,  似乎没有别的遍历对象的方式了, 要记住引入这个方法的意义)

Object.values

返回一个数组, 其内容死对象的所有的值

Object.entries

返回一个二维数组, 第一个数组存放的是健名, 第二个是值数组

Object.fromEntries

把一个二维数组转化为一个对象

 

 

 

 

posted on 2019-04-22 15:23  潇潇雨歇_山色空濛  阅读(1251)  评论(0编辑  收藏  举报