JavaScript 复制对象2025 年 4 月 7 日 | 阅读 4 分钟 在本文中,我们将深入理解 JavaScript 中的对象复制。 JavaScript 中有多种复制对象的方法,如下所示:
我们将逐一详细学习每种方法。 使用展开 (...) 语法我们可以借助展开 (...) 运算符在 JavaScript 中复制对象。 演示在此演示中,我们将使用展开 (...) 运算符。 代码 输出 我们可以看到对象已通过展开 (...) 运算符复制。我们在控制台中打印了“person”和“p1”这两个对象。“person”是原始对象,“p1”是“person”的复制对象,因此它们是相同的。 ![]() 使用 Object.assign() 方法我们可以借助 Object.assign() 方法在 JavaScript 中复制对象。 演示在此演示中,我们将使用 Object.assign() 方法。 代码 输出 我们可以看到对象已通过 Object.assign() 方法复制。我们打印了“person”和“p2”这两个对象。“person”是原始对象,“p2”是“person”的复制对象。 ![]() 使用 JSON.stringify() 和 JSON.parse() 方法我们可以借助 JSON.stringify() 和 JSON.parse() 方法在 JavaScript 中复制对象。 演示在此演示中,我们将使用 JSON.stringify() 和 JSON.parse() 方法。 代码 输出 我们可以看到对象已通过 JSON.stringify() 和 JSON.parse() 方法复制。我们打印了“person”和“p3”这两个对象。“person”是原始对象,“p3”是“person”的复制对象。 ![]() 展开 (...) 和 Object.assign() 都创建浅拷贝,而 JSON 方法创建深拷贝。 什么是浅拷贝?浅拷贝创建一个新对象,它是原始对象的副本,具有新的引用,并且只存储对象的引用地址。浅拷贝仅复制原始对象的顶层属性。嵌套对象在原始对象和克隆对象之间共享,这意味着原始对象和克隆对象相互依赖。 什么是深拷贝?深拷贝创建一个新对象,它是原始对象的一个精确副本,它复制并存储原始对象所有成员的副本,包括所有属性和嵌套对象。嵌套对象不在原始对象和克隆对象之间共享,这意味着原始对象和克隆对象是相互独立的。 浅拷贝演示让我们通过演示来理解如何构建浅拷贝。 演示 在下面的演示中,我们使用 Object.assign() 方法创建了一个浅拷贝。 代码 说明 我们创建了一个名为“person”的对象,并使用 Object.assign() 方法对其进行了复制,然后我们更改了 firstName、street 和 city。之后,我们将复制的对象打印到控制台。 我们可以看到复制对象的 firstName、address-street 和 address-city 的值已更改。 现在,我们将使用以下代码将原始对象打印到控制台。 我们可以看到原始对象的 address-street 和 address-city 的值已更改。firstName 的值未更改,因为 firstName 是原始值,而其他 address 值是引用值。 ![]() 深拷贝演示让我们通过演示来理解如何构建深拷贝。 演示 1 在下面的演示中,我们使用 JSON.stringify() 和 JSON.parse() 方法创建了一个浅拷贝。 代码 说明 我们创建了一个名为“product”的对象,并使用 JSON.parse() 和 JSON.stringify() 方法对其进行了复制,然后我们更改了 productName、description-processor 和 description-memory。之后,我们将复制的对象打印到控制台。 我们可以看到复制对象的 productName、description-processor 和 description-memory 的值已更改。 ![]() 现在,我们将使用以下代码将原始对象打印到控制台。 我们可以看到原始对象的值未更改,因为原始对象和复制对象已断开连接。 ![]() 结论在本文中,我们已经了解了 **JavaScript 对象复制**。我们已经学习了在 JavaScript 中复制对象的三个方法:使用展开 (...) 方法、Object.assign() 方法以及 JSON.stringify() 和 JSON.parse() 方法。 |
引言:用简洁的几句话描述如何在 JavaScript 中使用 forEach 方法以及何时使用它来扩展数组迭代的概念。强调 forEach 方法接受两个参数——条目的键和值,以及这种回调形式的...
阅读 12 分钟
我们需要在 JavaScript 中反复处理键值对。在谈论键值对时,最常用的方法是使用对象来存储键值对,但 ECMAScript 2015 引入了一个名为 Map 的功能,它也用于存储键值对。我们将理解……
阅读 4 分钟
JavaScript 是一种灵活而强大的编程语言,它驱动着 Web 的直观性。无论您是一位经验丰富的开发人员还是刚刚开始编程之旅,定期练习 JavaScript 对于提升您的技能并及时了解最新信息至关重要...
阅读 12 分钟
在构建应用程序时,尤其是在 intern 期间,在许多地方和文化中使用它,正确比较单词变得很重要。JavaScript 是一种流行的网站语言,它有一个名为 localeCompare() 的方法。它允许开发人员以一种尊重不同语言、地区...的方式比较单词。
阅读 3 分钟
什么是?在 JavaScript 中,断言是检查给定条件是否为真的语句。它通常用于调试和测试目的,以确保您的代码的某些条件或假设是有效的。简单来说,通过使用断言,我们可以包含...
7 分钟阅读
JavaScript 正则表达式修饰符使用元字符和其他正则表达式来控制和操作输入数据。修饰符与元字符和量词一起用于获取特定字段。search()、match()、test()、exec() 方法可在 JavaScript 中与正则表达式修饰符配合使用。这三个修饰符...
7 分钟阅读
向量是由其大小和方向定义的が基本数学对象。在数学中,向量是同时具有大小和方向的量的表示,通常显示为图上的箭头。向量在计算机科学和编程中被广泛使用,特别是在...
7 分钟阅读
字符串是用于显示、操作和处理操作数据的基本信息类型。数字使用 JavaScript 函数转换为字符串。本文详细介绍了将数字转换为字符串的多种函数和方法。JavaScript 中转换为字符串的方法以下是... (此文本不完整,因此无法翻译)
阅读 4 分钟
在 JavaScript 中,我们可以使用多种方法检查字符串是否为空。以下是一些示例:1. 使用 length 属性:我们可以使用字符串的 length 属性来检查它是否有任何字符。如果长度为……
阅读 3 分钟
JavaScript 中的 join() 方法是什么?在 JavaScript 中,join() 方法用于将数组的元素连接成一个字符串。字符串的元素将由一个特定的分隔符分隔,其默认值是逗号 (,)。简而言之,使用...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India