ES6学习笔记3:增强对象字面量

增强对象字面量

增强对象字面量(Enhanced Object Literals)使得在定义和操作对象的时候更加灵活便捷。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var obj = {
// 设置__proto__属性
__proto__: theProtoObj,
// 计算属性名(computed property name)不会触发早期定义时的错误
['__proto__']: somethingElse,
// ‘handler: handler’的简写
handler,
// 定义方法
toString() {
// super调用
return "d " + super.toString();
},
// 动态属性
[ "prop_" + (() => 42)() ]: 42
};

虽然使用计算属性名(Computed Property Name)可以在定义初期重复定义属性,但这么做并没有太大价值。计算属性名的主要用于动态设置属性,比如需要设置的某个属性以变量的形式出现或者需要计算得到时,如上述代码中最后的动态属性。

Babel编译后的代码如果需要手动编写则相对复杂得多,在ES5中实现相关功能略显得不偿失。

知识点总结

  1. 使用中括号设置属性,中括号中的表达式将被执行;
  2. 方法定义;
  3. 属性简写。

参考

  1. BabelJS - Learn ES2015