对象的扩展
对象类别
- 普通对象: 拥有JS对象所有默认的内部行为;
- 奇异对象: 其内部行为在某些方面别于默认行为;
- 标准对象: 在ES6中被定义的对象, 如
Date
, 标准对象既可以是普通对象
, 也可以是奇异对象
; - 内置对象: 脚本开始运行时由JS运行环境提供的对象, 所有的标准对象都是内置对象;
对象属性初始化器速记法
对于对象属性名称与其对应的属性值和本地变量重复的情况下可以使用 属性初始化器速记法
简写, 如:
const jsBook = function(author, year) {
return { author, year }; // 属性初始化器速记法
};
方法简写(concise method)
可以省略关键字 function
, 不多说, 直接看例子:
const jsBook = {
<!-- 方法简写 -->
read() {
// write hello world
}
};
使用这种方式定义的对象方法名字就是属性名, 而ES5的写法是可以在 function
关键字后指定一个名称做为该方法的名称, 还有一点区别是简写的方法可以使用 super
, 非简写的不能
需计算属性名
允许属性名包含在变量中, 如:
const hash = Math.random().toString(36).slice(2);
const jsBook = {
[hash]: hash // 在使用计算属性名时无法使用属性初始化器速记法表示对象
}