<ES6>扩展对象属性
简介
- ES6通过多种方式加强对象的使用,通过简单的语法扩展,提供更多操作对象以及对象交互方法。
初始值的简写
1 | let a = 1; |
对象方法的简写
- 注意简写方法可以使用super关键字
1 | let obj = { |
可计算属性名
1 | let firstName = 'first name' |
新增对象方法
Object.is()
- 以下几项比较特殊,其他比较与===相同
1 | console.log(Object.is(+0,-0))//false |
Object.assign()
- 混合(Mixin)模式,接受一个接收对象和任意数量的源对象
- 对于对象属性是浅复制
- 不能将访问器属性复制到接收对象,只是调用get
1 | let obj = {} |
自有属性的枚举顺序
- 所有数字按照升序排序
- 所有字母按照被加入对象的顺序排序
- symbol类型按照被加入顺序排序
- for-in循环不适用,因为浏览器厂商不一样
增强对象原型
- 对原型进行了改进
Object.setPrototypeOf()
- 改变对象的原型,改变对象内部专属[[Prototype]],接收两个参数,被改变原型的对象,以及替代原型的对象
简化原型访问的super
- super相当于指针,指向Object.getPrototypeOf(this)的值
- 必须在简写方法时使用super
1 | let person = { |
正式的方法定义
1 | let obj = { |
- 正式的方法定义内部存在[[HomeObject]]属性
1 | let obj = { |