zoukankan      html  css  js  c++  java
  • javascript中的克隆

    一:节点克隆

    var p = document.getElementsByTagName("p")[0];

     var cP = p.cloneNode();//克隆p节点

    var cP = p.cloneNode(true);//克隆p节点,深度克隆,克隆节点以及节点下面的子内容。

    二 变量克隆

    ①基本类型的克隆

    基本类型的复制,其实是在变量对象上创建一个新值,然后把要复制的值复制到新变量分配的位置上,当那个变量的值改变的时候,另一个值不会受到影响,按值传递。

    (函数的参数是只能按值传递),也就是深度克隆,被复制的对象与新对象完全独立。

    ②引用类型的克隆

    也会复制一份到为新变量分配的空间,不过被复制的变量是指针,这两个指针指向存储在堆中的同一个对象。如果改变其中一个变量的值,另一个也会改变,按指针传递。

    也就是浅度克隆。

    三:数组克隆

    ①slice()

    1 var aArr = [0,1,2,3];

    2 var m = aArr.slice(0);

    3 aArr = [3,2,1,0];

    克隆完毕后,改变aArr时,m不会改变,实现了数组的深度克隆。

    ②concat()

    实现数组的合并,将当前数组和一个空数组合并。

    ③最简单的方法用一个loop将原来数组中的元素push()到新的空数组中。

  • 相关阅读:
    C++中的静态数据成员的作用与好处
    C++中的虚函数表
    CF292-D
    CF292-C
    CF292-B
    CF292-A
    CF291-B
    CF291-C
    CF287-B
    CF287-C
  • 原文地址:https://www.cnblogs.com/lihongfei0602/p/4063417.html
Copyright © 2011-2022 走看看