📜  ES6-对象扩展(1)

📅  最后修改于: 2023-12-03 15:14:53.975000             🧑  作者: Mango

ES6-对象扩展

在ES6之前,我们创建对象通常是这样写的:

var person = {
  name: 'Tom',
  age: 18
}

这种方式虽然简单直接,但是在一些特定场景下就显得不够灵活。对于实际开发中的需求,ES6提供了更加强大的对象扩展。

属性名表达式

属性名不仅可以使用字面量形式,还可以使用表达式形式。例如:

const user = 'Tom'
const person = {
  [user]: 'a programmer'
}
console.log(person[user]) // "a programmer"
展开运算符

ES6 引入了对象的扩展运算符..., 这个运算符好比 rest 参数的逆运算,将一个对象转为用逗号分隔的参数序列。

let person = {
  name: 'Tom',
  age: 18
}
let newPerson = {...person}
console.log(newPerson) // {name: "Tom", age: 18}
Object.assign()

ES6引入了Object.assign()方法,用于对象的合并。

let person = {
  name: 'Tom',
  age: 18
}
let newPerson = Object.assign({}, person)
console.log(newPerson) // {name: "Tom", age: 18}
Object.keys()

Object.keys()方法可以返回一个对象所有可枚举属性的键名。

let person = {
  name: 'Tom',
  age: 18
}
console.log(Object.keys(person)) // ["name", "age"]
Object.entries()

Object.entries()方法返回一个数组,成员是参数对象自身的(可遍历的)键值对数组。

let person = {
  name: 'Tom',
  age: 18
}
console.log(Object.entries(person)) // [["name", "Tom"], ["age", 18]]
Object.values()

Object.values()方法返回一个数组,成员是参数对象自身的(可遍历的)属性值。

let person = {
  name: 'Tom',
  age: 18
}
console.log(Object.values(person)) // ["Tom", 18]

ES6的对象扩展使得开发者在声明对象时更加灵活,同时在操作对象时也更加便捷。