📅  最后修改于: 2023-12-03 15:14:53.975000             🧑  作者: Mango
在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}
ES6引入了Object.assign()方法,用于对象的合并。
let person = {
name: 'Tom',
age: 18
}
let newPerson = Object.assign({}, person)
console.log(newPerson) // {name: "Tom", age: 18}
Object.keys()方法可以返回一个对象所有可枚举属性的键名。
let person = {
name: 'Tom',
age: 18
}
console.log(Object.keys(person)) // ["name", "age"]
Object.entries()方法返回一个数组,成员是参数对象自身的(可遍历的)键值对数组。
let person = {
name: 'Tom',
age: 18
}
console.log(Object.entries(person)) // [["name", "Tom"], ["age", 18]]
Object.values()方法返回一个数组,成员是参数对象自身的(可遍历的)属性值。
let person = {
name: 'Tom',
age: 18
}
console.log(Object.values(person)) // ["Tom", 18]
ES6的对象扩展使得开发者在声明对象时更加灵活,同时在操作对象时也更加便捷。