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 中的对象特性。

相关推荐
时间的情敌36 分钟前
Vue3 + Cesium 实战:本地上传 GLB 模型、模型上叠加 GLB、点击控制透明度
前端·vue.js·cesium
小蒜学长3 小时前
基于SpringBoot+Vue的云南地区扶贫助农系统的设计与实现(代码+数据库+LW)
java·vue.js·spring boot·后端·乡村振兴
雪芽蓝域zzs4 小时前
WebStorm Uniapp Support + Uniapp Tool + Uniappx Language Service讲解
vue.js·uni-app·webstorm
OpenTiny社区4 小时前
AI 生成的 Vue 代码,终于能直接用了!
前端·vue.js·github
tryCbest5 小时前
Vue3——第 12 篇:组合式 API(下)——Composables 与逻辑3
vue.js
LuHang20 小时前
从天地图切换到高德地图:一次真实的底图迁移实战
前端·vue.js·cesium
ruanno_top1 天前
Vue 3 后台权限路由:我漏掉了按钮级裁剪,还把 403 写成了 404
vue.js
栉甜1 天前
Vue2学习内容(上)
前端·javascript·vue.js·学习
小郎君6581 天前
(六)el-cascader 的展示值为什么不能直接 join:emitPath、路径还原与多选去重
vue.js·算法
用户093671755411 天前
用 4500 行 TypeScript 复刻了童年方格纸上的海战棋
前端·vue.js