当前位置:首页 > JavaScript

js实现一个浅拷贝

2026-03-02 02:14:11JavaScript

浅拷贝的实现方法

浅拷贝是指创建一个新对象,复制原始对象的属性值。如果属性是基本类型,拷贝的是值;如果属性是引用类型,拷贝的是内存地址。以下是几种常见的实现方法:

方法1:使用展开运算符(...)

js实现一个浅拷贝

const original = { a: 1, b: { c: 2 } };
const copy = { ...original };

方法2:使用Object.assign()

js实现一个浅拷贝

const original = { a: 1, b: { c: 2 } };
const copy = Object.assign({}, original);

方法3:手动遍历属性

function shallowCopy(obj) {
  const result = {};
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      result[key] = obj[key];
    }
  }
  return result;
}
const original = { a: 1, b: { c: 2 } };
const copy = shallowCopy(original);

注意事项

浅拷贝只复制对象的第一层属性。如果对象包含嵌套对象,嵌套对象仍然是引用关系,修改嵌套对象的属性会影响原始对象。

const original = { a: 1, b: { c: 2 } };
const copy = { ...original };
copy.b.c = 3;
console.log(original.b.c); // 输出3

如果需要完全独立的副本,应考虑使用深拷贝方法。

标签: js
分享给朋友:

相关文章

js实现计算器

js实现计算器

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

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…