前端 js 经典:深拷贝

简介: 前端 js 经典:深拷贝

浅拷贝:两个对象指向同一个内存地址,其中一个改变会影响另外一个

深拷贝:新对象指向新得内存地址,互不影响

function deepClone(obj) {
  if (typeof obj !== "object") return obj;
  
  const target = Array.isArray(obj) ? [] : {};
  for (const key in obj) {
    // 判断数据中key是否重复,不重复着继续逻辑
    if (!hasOwnProperty.call(obj, key)) continue;
    const v = obj[key];
    target[key] = typeof v === "object" && v !== null ? deepClone(v) : v;
  }
  return target;
}


目录
相关文章
|
1月前
|
JavaScript 前端开发 Java
【面试题】new 一个对象时,js 做了什么?
【面试题】new 一个对象时,js 做了什么?
|
29天前
|
前端开发 JavaScript
前端 js 经典:数组常用方法总结
前端 js 经典:数组常用方法总结
27 0
|
28天前
|
前端开发 JavaScript
前端 JS 经典:数组去重万能方法
前端 JS 经典:数组去重万能方法
21 0
|
29天前
|
前端开发 JavaScript
前端 JS 经典:for-in 和 for-of 用法区别
前端 JS 经典:for-in 和 for-of 用法区别
24 0
|
29天前
|
前端开发 JavaScript 流计算
前端 js 经典:字符串超全方法总结
前端 js 经典:字符串超全方法总结
29 0
|
28天前
|
JavaScript 前端开发
前端 JS 经典:原型和原型链
前端 JS 经典:原型和原型链
22 0
|
1月前
|
前端开发 JavaScript
前端 JS 经典:i,i++,++i区别
前端 JS 经典:i,i++,++i区别
22 0
|
1月前
|
存储 前端开发 JavaScript
前端最常见的JS数组操作方法大全
【4月更文挑战第3天】前端最常见的JS数组操作方法大全
27 5
|
1月前
|
存储 JavaScript 前端开发
js深浅拷贝的区别
js深浅拷贝的区别
23 0
|
10月前
|
JavaScript 前端开发
js深浅贝和浅拷贝区别
js深浅贝和浅拷贝区别