当前位置: 首页 > 编程笔记 >

JS深度拷贝Object Array实例分析

琴宾鸿
2023-03-14
本文向大家介绍JS深度拷贝Object Array实例分析,包括了JS深度拷贝Object Array实例分析的使用技巧和注意事项,需要的朋友参考一下

本文实例分析了JS深度拷贝Object Array。分享给大家供大家参考,具体如下:

function cloneObj(o)
{
  var isArray = o instanceof Array;
  var isObject = o instanceof Object;
  if (!isObject) return o;
  var n = (isArray ? [] : {});
  for (var k in o) n[k] = cloneObj(o[k]);
  return n;
}

遇到的问题

typeof [] 结果为 object
typeof {} 结果为 object

[] instanceof Array 结果为 true
{} instanceof Object 结果为 true
[] instanceof Object 结果也为 true

说明JS中 Array 是 Object 的子类。

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

 类似资料:
  • 本文向大家介绍Python直接赋值、浅拷贝与深度拷贝实例分析,包括了Python直接赋值、浅拷贝与深度拷贝实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python直接赋值、浅拷贝与深度拷贝。分享给大家供大家参考,具体如下: 直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy): copy 模块的 dee

  • 本文向大家介绍Python浅拷贝与深拷贝用法实例,包括了Python浅拷贝与深拷贝用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python浅拷贝与深拷贝用法。分享给大家供大家参考。具体分析如下: 浅拷贝,创造了新的对象,但是它的对象引用确和被拷贝对象一致。 如果被拷贝对象的构成元素是不可变类型,则拷贝对象对这个元素的改变,实际上是创造一个新的对象。 如果被拷贝对象的构成元素是可

  • 本文向大家介绍C/C++ 浅拷贝和深拷贝的实例详解,包括了C/C++ 浅拷贝和深拷贝的实例详解的使用技巧和注意事项,需要的朋友参考一下 C/C++ 浅拷贝和深拷贝的实例详解 深拷贝是指拷贝对象的具体内容,而内存地址是自主分配的,拷贝结束之后,两个对象虽然存的值是相同的,但是内存地址不一样,两个对象也互不影响,互不干涉。 浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间. 浅拷贝

  • 本文向大家介绍js深度拷贝一个元素的具体实现?相关面试题,主要包含被问及js深度拷贝一个元素的具体实现?时的应答技巧和注意事项,需要的朋友参考一下 参考回答:  

  • 主要内容:到底是浅拷贝还是深拷贝对于基本类型的数据以及简单的对象,它们之间的拷贝非常简单,就是按位复制内存。例如: b 和 obj2 都是以拷贝的方式初始化的,具体来说,就是将 a 和 obj1 所在内存中的数据按照二进制位(Bit)复制到 b 和 obj2 所在的内存, 这种默认的拷贝行为就是 浅拷贝 ,这和调用 memcpy() 函数的效果非常类似。 对于简单的类,默认的拷贝构造函数一般就够用了,我们也没有必要再显式地定义一

  • 浅拷贝 对于对象或数组类型,当我们将a赋值给b,然后更改b中的属性,a也会随着变化。 也就是说,a和b指向了同一块堆内存,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝。 深拷贝 那么相应的,如果给b放到新的内存中,将a的各个属性都复制到新内存里,就是深拷贝。 也就是说,当b中的属性有变化的时候,a内的属性不会发生变化。 参考链接: 深拷贝与浅拷贝的实现(一) javaScript中浅拷