当前位置:首页 > JavaScript

js实现一个浅拷贝

2026-03-02 02:14:11JavaScript

浅拷贝的实现方法

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

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

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

方法2:使用Object.assign()

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实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现论坛

js实现论坛

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

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…