js深拷贝

发布时间 2023-05-16 16:40:33作者: web与webGL

js深拷贝

在JavaScript中,有多种方法可以实现对象的深拷贝,下面介绍几种常用的方式:

  1. 手动遍历对象进行复制

    function deepCopy(obj) {
      if (typeof obj !== 'object' || obj === null) {
        return obj;
      }
    
      let newObj = Array.isArray(obj) ? [] : {};
    
      for (let key in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, key)) {
          newObj[key] = deepCopy(obj[key]);
        }
      }
    
      return newObj;
    }
    

      

  2. 使用JSON.stringify和JSON.parse进行深拷贝     注意:这种方式虽然简单,但是会忽略对象中的函数、循环引用等情况,需要谨慎使用

    function deepCopy(obj) {
      return JSON.parse(JSON.stringify(obj));
    }
    

      

  3. 注意:这种方式虽然简单,但是会忽略对象中的函数、循环引用等情况,需要谨慎使用

    const _ = require('lodash');
    
    let obj = { a: 1, b: { c: 2 } };
    let newObj = _.cloneDeep(obj);
    

      

   以上几种方式都可以实现对象的深拷贝,选择哪种方式取决于实际业务需求和数据结构。

相关qq学习群:910316886