对象的扩展
在ES6中有两个Object的扩展用法
Object.is()
用于判断两个对象是否相等,ES6提出“Same-value equality”(同值相等)算法,用来解决这个问题。Object.is就是部署这个算法的新方法。它用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致
1 | Object.is('foo', 'foo') // true |
Object.assign()
用于合并对象,当做对数据的更新逻辑时,功能类似于Java里的Dozer库
1 | var target = { a: 1 }; |
该方法有个特性,如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性,那么我们就可以用来对对象做更新操作
1 | var source = {key:"1"} |
这里我们把target设定成一个空对象,在完成了assgin之后返回target,由于需要update的信息在source之后,所以update的数据覆盖了元数据,又将source对象重新指向返回的target完成更新