es6 基础学习之对象的扩展

ES6 中的对象扩展

在 ES6(ECMAScript 2015)中,对象有了几个重要的扩展和改进。

1. 简洁的属性名和方法名

在 ES6 中,你可以使用更简洁的语法来定义对象属性和方法。

javascript 复制代码
const x = 1, y = 2;

// ES5
const obj1 = { x: x, y: y };

// ES6
const obj2 = { x, y };

// ES5
const obj3 = {
  method: function() {
    console.log('Hello');
  }
};

// ES6
const obj4 = {
  method() {
    console.log('Hello');
  }
};

2. 计算属性名(Computed Property Names)

在对象字面量中,你可以使用方括号 [] 来定义计算属性名。

javascript 复制代码
const propName = 'name';

const obj = {
  [propName]: 'John'
};

console.log(obj.name);  // 输出 "John"

3. Object.assign()

这个方法用于将源对象的所有可枚举属性复制到目标对象中。

javascript 复制代码
const obj1 = { x: 1 };
const obj2 = { y: 2 };
const obj3 = Object.assign({}, obj1, obj2);

console.log(obj3);  // 输出 { x: 1, y: 2 }

注意:Object.assign() 是浅拷贝。

4. 对象解构(Object Destructuring)

这使得从对象中提取属性并赋值给变量更加方便。

javascript 复制代码
const { x, y } = { x: 1, y: 2 };

console.log(x);  // 输出 1
console.log(y);  // 输出 2

5. 扩展运算符(Spread Operator)和剩余运算符(Rest Operator)

扩展运算符用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中。

javascript 复制代码
const obj1 = { x: 1, y: 2 };
const obj2 = { ...obj1, z: 3 };

console.log(obj2);  // 输出 { x: 1, y: 2, z: 3 }

剩余运算符用于从一个对象中取出所有可遍历属性,剔除特定属性后构建新对象。

javascript 复制代码
const { x, ...rest } = { x: 1, y: 2, z: 3 };

console.log(x);     // 输出 1
console.log(rest);  // 输出 { y: 2, z: 3 }

6. Object.values()Object.entries()

  • Object.values(): 返回一个数组,包含对象自身所有可枚举属性的值。
  • Object.entries(): 返回一个数组,包含对象自身所有可枚举属性的 [key, value] 键值对。
javascript 复制代码
const obj = { x: 1, y: 2 };

console.log(Object.values(obj));  // 输出 [1, 2]
console.log(Object.entries(obj)); // 输出 [['x', 1], ['y', 2]]

这些是 ES6 中关于对象的主要扩展和改进。这些新特性使得对象操作更加灵活和方便,也让代码更加简洁和可读。希望这些信息能帮助你更好地理解和使用 ES6 中的对象特性。

相关推荐
毕设十刻3 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
王同学要变强7 小时前
【深入学习Vue丨第二篇】构建动态Web应用的基础
前端·vue.js·学习
程序定小飞7 小时前
基于springboot的web的音乐网站开发与设计
java·前端·数据库·vue.js·spring boot·后端·spring
武昌库里写JAVA7 小时前
element-ui 2.x 及 vxe-table 2.x 使用 css 定制主题
java·vue.js·spring boot·sql·学习
不会算法的小灰9 小时前
Vue.js 基础教程:从入门到实践
前端·javascript·vue.js
拉不动的猪9 小时前
浏览器&Websocket&热更新
前端·javascript·vue.js
那些免费的砖9 小时前
Reka UI - 一款免费开源的 Vue 无头 UI 组件库,样式定制开发项目的绝佳选择
vue.js·ui·开源
前端付豪10 小时前
Vue 中的 JSX:让组件渲染更灵活的正确方式
前端·javascript·vue.js
apollo_qwe11 小时前
Vue 权限控制神技!自定义 auth 指令优雅实现按钮级权限管理
vue.js·架构
阿登林12 小时前
Vue面试项目经验分享:如何专业展示技术能力与解决问题
vue.js·经验分享·面试