ES6 对象扩展全解析:属性简写、表达式、super 关键字等的深度应用
在 ES6 及其后续版本中,JavaScript 对象有许多新增和扩展的特性,这些扩展提升了代码的简洁性、可读性和功能性。下面我们将从以下几个方面逐一讲解,并结合实际项目代码示例进行说明:
- 属性简写
- 属性名表达式
super
关键字- 扩展运算符 (
...
) - 属性遍历
- 对象新增的方法
1. 属性简写(Shorthand Property Names)
ES6 引入了对象属性的简写语法。当对象的属性名和变量名相同的时候,可以省略属性名。
语法:
let name = "John";
let age = 30;
let person = {
name, age };
console.log(person); // { name: "John", age: 30 }
实际项目示例:
在一个用户管理系统中,创建新用户时,你可以使用属性简写来简化代码:
function createUser(name, age) {
return {
name, age }; // 等同于 { name: name, age: age }
}
const newUser = createUser("Alice", 25);
console.log(newUser); // { name: "Alice", age: 25 }
2. 属性名表达式(Computed Property Names)
ES6 允许在对象字面量中使用表达式作为属性名,这使得动态创建属性变得更加简单。
语法:
let propName = 'age';
let person = {
[propName]: 30,
};
console.log(person); // { age: 30 }
实际项目示例:
在一个产品管理系统中,属性名可能来自用户的输入或其他动态数据:
function createProduct(name, price, discountKey) {
return {
name,
price,
[discountKey]: 10 // 使用动态的属性名
};
}
const product = createProduct("Laptop", 1000, "discount");
console.log(product); // { name: "Laptop", price: 1000, discount: 10 }
3. super
关键字
在对象字面量中,super
关键字用于访问父类的方法或属性,特别是在子