码迷,mamicode.com
首页 > 编程语言 > 详细

javascript中的克隆

时间:2014-10-30 20:32:14      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:style   ar   java   sp   on   bs   as   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()到新的空数组中。

javascript中的克隆

标签:style   ar   java   sp   on   bs   as   javascript   对象   

原文地址:http://www.cnblogs.com/lihongfei0502/p/4063417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!