对象类别
普通对象:拥有 JS 对象所有默认的内部行为。
奇异对象:其内部行为在某些方面有别于默认行为。
标准对象:在 ES6 中被定义的对象,例如 Array 、 Date ,等等。标准对象可以是普通的,也可以是奇异的。
内置对象:在脚本开始运行时由 JS 运行环境提供的对象。所有的标准对象都是内置对象。
对象字面量语法的扩展
属性初始化器的速记法
当对象字面量中的属性只有名称时, JS 引擎会在周边作用域查找同名变量。若找到,该变量的值将会被赋给对象字面量的同名属性。
方法简写:在ES6中,可以通过省略function关键字和冒号来简写对象字面量中的方法。
需计算属性名
在ES5中,对象实例能使用“需计算的属性名”,只要用方括号表示法来代替小数点表示法即可。在 ES6 中,需计算属性名是对象字面量语法的一部分,它用的也是方括号表示法,与此前在对象实例上的用法一致,在方括号中可以添加表达式。
新的方法
Object.is() 方法
ES6 引入了 Object.is() 方法来弥补严格相等运算符残留的怪异点。在许多情况下, Object.is() 的结果与 === 运算符是相同的,仅有的例外是:它会认为+0 与 -0 不相等,而且 NaN 等于 NaN 。
Object.assign() 方法
混入:一个对象从另一个对象中接收属性与方法。
重复的对象字面量属性:ES6取消了严格模式下的重复属性检查,排在后面的属性值为该属性的属性值。
自有属性的枚举顺序
自有属性枚举时基本顺序如下:
1. 所有的数字类型键,按升序排列。
2. 所有的字符串类型键,按被添加到对象的顺序排列。
3. 所有的符号类型键,也按添加顺序排
更强大的原型
对象的原型会在通过构造器或 Object.create() 方法创建该对象时被指定。在ES5中 , JS 编程最重要的假定之一就是对象的原型在初始化完成后会保持不变。而在ES5 添加了 Object.getPrototypeOf() 方法来从任意指定对象中获取其原型,但仍然缺少在初始化之后更改对象原型的标准方法。
ES6 通过添加 Object.setPrototypeOf() 方法而改变了这种假定,此方法允许你修改任意指定对象的原型。它接受两个参数:需要被修改原型的对象,以及将会成为前者原型的对象。
使用 super 引用的简单原型访问
super 是指向当前对象的原型的一个指针,实际上就是 Object.getPrototypeOf(this) 的值。当使用多级继承时, super 引用就是非常强大的,因为这种情况下Object.getPrototypeOf() 不再适用于所有场景
正式的“方法”定义
ES6 则正式做出了定义:方法是一个拥有 [[HomeObject]] 内部属性的函数,此内部属性指向该方法所属的对象。
网友评论