新增的基本新特性

1 属性的简洁表示法

直接写入变量和函数,作为对象的属性和方法(变量或函数名会作为属性名,其值是对应属性的值):

变量:

const foo = 'bar';
const baz = {foo};
baz // {foo: "bar"}

// 等同于
const baz = {foo: foo};

函数:

const o = {
  method() {
    return "Hello!";
  }
};

// 等同于

const o = {
  method: function() {
    return "Hello!";
  }
};

2 属性名表达式

ES5 定义对象的属性,有两种方法。

// 方法一:直接用标识符作为属性名,属性名定死
obj.foo = true;

// 方法二:用表达式作属性名(属性名可为变量),要将表达式放在方括号之内
obj['a' + 'bc'] = 123;

如果使用字面量方式定义对象(使用大括号),在 ES5 中只能使用方法一,表达式里写表达式的方法无法用,也就不能指定属性名为变量

var obj = {
  foo: true,
  abc: 123
};

ES6 允许字面量定义对象时,用方法二(表达式)作为对象的属性名,即把表达式放在方括号内

let propKey = 'foo';

let obj = {
  [propKey]: true,
  ['a' + 'bc']: 123
};

这就是ES6的属性名表达式。

results matching ""

    No results matching ""