ES6-对象字面量语法扩展

2022-03-04  本文已影响0人  清风昙

对象字面量(Object Literals)是js中创建对象的一种方法,在ES6中通过如下语法,让对象字面量变得更加强大简洁。

function testFunc(color, name) {
  return { 
    // 有同名地参数,只写属性名就可以
     color,
     name
  }
}
let color = 'red'
let name = 'zhang wu'
var obj = {color, name}
// 有同名地本地变量,只写属性名即可

注:当对象字面量里只有属性名称时,js引擎会在可访问作用域中查找与其同名的变量,如找到就把变量的值赋值给对象字面量里的同名属性

var obj = {
  color: 'red',
  showColor() {
    console.log(this.color)
   }
}
obj.showColor()
console.log(obj.showColor.name) // showColor

注:通过对象方法的简写语法创建的方法有一个name属性,其值为圆括号前面的名称。

let suffix = 'name'
let obj = {}
obj['first name'] = 'zhangsan' // 属性名中有空格
obj['last' + suffix] = 'liwu'  // 属性名由表达式计算得到
console.log(obj)  // {'first name': 'zhangsan', 'last name': 'liwu'}

在ES6中可以在对象字面量中使用可计算的属性名称。

let suffix = 'name'
let obj = {
  ['first' + suffix]: 'zhangsan',
  ['last' + suffix]: 'liwu'
}
console.log(obj)  // {'first name': 'zhangsan', 'last name': 'liwu'}
上一篇下一篇

猜你喜欢

热点阅读