当前位置:首页 > JavaScript

js对象展开 实现

2026-02-02 22:52:18JavaScript

对象展开语法(Spread Syntax)

对象展开语法(...)允许将一个对象的可枚举属性展开到另一个对象中,常用于合并、复制或覆盖对象属性。

基本用法

通过 ... 展开对象属性到新对象:

const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 }; // { a: 1, b: 2, c: 3 }

合并对象

同名属性后展开的值会覆盖先前的值:

js对象展开 实现

const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const merged = { ...obj1, ...obj2 }; // { a: 1, b: 3, c: 4 }

浅拷贝对象

展开语法实现对象的浅拷贝:

const original = { x: 1, y: { z: 2 } };
const copy = { ...original };
copy.y.z = 3; // 修改嵌套对象会影响原对象
console.log(original.y.z); // 3

覆盖属性

展开语法可覆盖已有属性:

js对象展开 实现

const defaults = { theme: 'light', fontSize: 16 };
const userSettings = { theme: 'dark' };
const finalSettings = { ...defaults, ...userSettings }; // { theme: 'dark', fontSize: 16 }

动态添加属性

结合计算属性名动态添加属性:

const key = 'dynamicProp';
const obj = { ...{ [key]: 'value' } }; // { dynamicProp: 'value' }

注意事项

  • 仅展开对象自身的可枚举属性(不包含原型链上的属性)。
  • 嵌套对象是浅拷贝,修改嵌套属性会影响原对象。
  • 适用于 ES2018(ES9)及更高版本。

兼容性处理

如需支持旧环境,可通过 Object.assign() 替代:

const merged = Object.assign({}, obj1, obj2);

标签: 对象js
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previ…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…