物件在 JavaScript 中是非常重要的资料结构,而在 ES6 之后扩展了它的语法结构,让表示法变得更简单易懂,还增加了属性名称的动态改变。
更简洁的表示法允许直接写入变数和函数,作为物件的属性和方法应用:用于简化函数的返回值或输入参数使用于物件的解构赋值// 对物件直接写入变数和函数,省略了许多关键词let birth = '2018/01/01';let person = { name: '老王', // 等同于 birth: birth birth, // 等同于 sayHello: function() {...} sayHello() { console.log('My name is '+ this.name + ' ' + this.birth); }};person.sayHello(); // 'My name is 老王 2018/01/01'
// 简化函数的物件返回值function getPoint() { let x = 5; let y = 10; return {x, y};}console.log(getPoint()); // { x: 5, y: 10 }
允许在定义物件时,属性名称是可变化的,需用[]
包覆,但内容还是只能使用字串// 定义物件时,属性名称是可变化的let key = 'Hello';let obj = { [key]: true, ['a' + 'bc']: 123};console.log(obj); // { Hello: true, abc: 123 }