ES6 允许在对象中使用表达式定义属性名,这时表达式放置在方括号内。
一.ES 6中定义对象属性
1.基本定义
-
①在ES6中定义对象属性有两种方式。
// 方法一 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对象可以使用表达式定义方法名
let obj = { ['h' + 'ello']() { return 'hi'; } }; obj.hello() // hi
-
⑤属性名表达式如果是一个对象,默认情况下会自动将对象转为字符串
[object Object]
,对象key值之间会相互覆盖const keyA = {a: 1}; const keyB = {b: 2}; const myObject = { [keyA]: 'valueA', [keyB]: 'valueB' }; myObject // Object {[object Object]: "valueB"}