当前位置: 首页 > article >正文

ES6 对象扩展全解析:属性简写、表达式、super 关键字等的深度应用

在 ES6 及其后续版本中,JavaScript 对象有许多新增和扩展的特性,这些扩展提升了代码的简洁性、可读性和功能性。下面我们将从以下几个方面逐一讲解,并结合实际项目代码示例进行说明:

  1. 属性简写
  2. 属性名表达式
  3. super 关键字
  4. 扩展运算符 (...)
  5. 属性遍历
  6. 对象新增的方法

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 关键字用于访问父类的方法或属性,特别是在子


http://www.kler.cn/a/420794.html

相关文章:

  • macOS运行amd64的镜像
  • rpm包转deb包或deb包转rpm包
  • 【MySql】navicat连接报2013错误
  • vue+mars3d给影像底图叠加炫酷效果
  • 面试题-RocketMQ的基本架构、支持的消息模式、如何保证消息的可靠传输
  • 产品转后端?2
  • Qt5语法的connect指定多个重载信号槽函数中的具体某一个
  • Day6 洛谷 1426+1425+1424+1423+1422+1614+1634+1639
  • 基于Springboot + Vue开发的美食探索及分享平台
  • Maxwell的入门实战
  • java基础概念46-数据结构1
  • Rust循环引用与多线程并发
  • 浏览器中输入一个URL后,按下回车后发生了什么
  • Truffle和Remix简介
  • 基础原型链污染
  • K8S资源之secret资源
  • 基于Java Springboot传统戏曲推广微信小程序
  • 泷羽sec-burp功能介绍(1) 学习笔记
  • Python爬取机车网车型数据并存入Mysql数据库
  • 如何让控件始终处于父容器的居中位置(父容器可任意改变大小)
  • vue项目如何设置字体样式font-family,font-family在项目中不生效
  • linux perf安装问题解决
  • Python线程使用
  • linux arm下获取屏幕事件(rk3588)
  • 大模型开发和微调工具Llama-Factory-->训练方法(SFT, RLHF, DPO, KTO)
  • Android 编译和使用libheif