当前位置:首页 > JavaScript

js对象展开 实现

2026-04-07 16:41:26JavaScript

对象展开运算符的基本用法

在JavaScript中,对象展开运算符(...)允许将一个对象的可枚举属性拷贝到另一个对象中。ES2018(ES9)正式将对象展开运算符纳入标准。

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

合并多个对象

对象展开运算符可以用于合并多个对象,后面对象的属性会覆盖前面对象的同名属性。

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

浅拷贝对象

对象展开运算符可以实现对象的浅拷贝,不会拷贝原型链上的属性。

js对象展开 实现

const original = { x: 1, y: { z: 2 } };
const copy = { ...original };
original.y.z = 3;
console.log(copy.y.z); // 3,因为y是引用类型

添加新属性

可以在展开对象的同时添加新的属性。

const base = { name: 'Alice' };
const extended = { ...base, age: 25, city: 'London' };
console.log(extended); // { name: 'Alice', age: 25, city: 'London' }

覆盖现有属性

通过展开顺序可以实现属性的覆盖,后面展开的对象会覆盖前面同名属性。

js对象展开 实现

const defaults = { theme: 'light', fontSize: 14 };
const userPrefs = { theme: 'dark' };
const settings = { ...defaults, ...userPrefs };
console.log(settings); // { theme: 'dark', fontSize: 14 }

与解构赋值结合使用

对象展开可以与解构赋值一起使用,收集剩余属性。

const { a, ...rest } = { a: 1, b: 2, c: 3 };
console.log(a); // 1
console.log(rest); // { b: 2, c: 3 }

注意事项

对象展开运算符执行的是浅拷贝,对于嵌套对象只会复制引用。展开操作不会拷贝对象的原型链,需要使用Object.assign()或手动设置原型来保持原型链。

class Example {
  constructor() {
    this.x = 1;
  }
}
const instance = new Example();
const copy = { ...instance };
console.log(copy instanceof Example); // false

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

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…