30 es6 -- 对象扩展

40 阅读1分钟

对象简写

image.png

对象属性表达式

我们希望将外面定义的变量名 变为对象里面的属性名 ,使用 []

image.png

对象里面的扩展运算符

应用

对象里面是一层数据

若对象里面只是一层数据,它的元素只是简单类型的元素,那么就属于深拷贝 。

image.png

修改了name 那么此时的obj1 和 obj的name不一样

image.png

对象里面是引用类型的元素

对象里面是引用类型的时候,那么就是浅拷贝

image.png

那么 obj1 和 obj 里面的age 就会都修改了

image.png

进行合并

image.png

image.png

多个合并

在属性名 相同的情况下,若多个对象的里面的属性名一样的话,那么后面的会把前面的给覆盖掉

Object.assign

es6提供的合并对象的语法糖

Object.assign(要拷贝给谁【目标对象】,拷贝的是哪一个对象)

image.png

es6对象的简化写法

es6 允许在大括号中,直接写入变量和函数,作为对象的属性和方法

image.png

Object.is 判断两值是否相同

es6之前

在es6之前,是 用 == 、 === 判断的,不过它无法判断NaN是否相同

image.png

es6之后

在es6之后,是 使用 Object.is来进行判断的

image.png

与 == 、=== 的不同点

判断 NaN

我们可以利用Object.is来判断 传入的值是否是相同的

image.png

因为 Object.is可以判断 两个 NaN是相同的

判断 +0 、-0

**在Object.is中 **

image.png

在== === 中

image.png

Object.setPrototypeOf

是给原型对象设置的

Object.setPrototypeOf(要设置原型的对象,该对象的一个新原型)

image.png

image.png

Object.getPrototypeOf

是获取刚才使用 Object.setPrototypeOf 设置的原型对象的

Object.getPrototypeOf(返回哪个对象的原型)

image.png

image.png