最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript克隆对象深度介绍_基础知识

来源:动视网 责编:小采 时间:2020-11-27 21:05:31
文档

javascript克隆对象深度介绍_基础知识

javascript克隆对象深度介绍_基础知识:js一般有两种不同数据类型的值: 基本类型(包括undefined,Null,boolean,String,Number),按值传递; 引用类型(包括数组,对象),按址传递,引用类型在值传递的时候是内存中的地址。 克隆或者拷贝分为2种: 浅度克隆:基本类型为值传递,对象仍为引用
推荐度:
导读javascript克隆对象深度介绍_基础知识:js一般有两种不同数据类型的值: 基本类型(包括undefined,Null,boolean,String,Number),按值传递; 引用类型(包括数组,对象),按址传递,引用类型在值传递的时候是内存中的地址。 克隆或者拷贝分为2种: 浅度克隆:基本类型为值传递,对象仍为引用


js一般有两种不同数据类型的值:
  基本类型(包括undefined,Null,boolean,String,Number),按值传递;
  引用类型(包括数组,对象),按址传递,引用类型在值传递的时候是内存中的地址。
克隆或者拷贝分为2种:
  浅度克隆:基本类型为值传递,对象仍为引用传递。
  深度克隆:所有元素或属性均完全克隆,并于原引用类型完全独立,即,在后面修改对象的属性的时候,原对象不会被修改。
代码如下:
function cloneObject(obj){
var o = obj.constructor === Array ? [] : {};
for(var i in obj){
if(obj.hasOwnProperty(i)){
o[i] = typeof obj[i] === "object" ? cloneObject(obj[i]) : obj[i];
}
}
return o;
}

另:如果是一个简单的数组,元素中没有引用类型的值,可以直接用array.concat();或者array.slice(0);来深度拷贝一个数组,这样简单又高效。数组的concat()和slice()本来就会生成一个新的数组,原来的数组不会受影响。但是要注意的是你要确保被拷贝的数组中元素中没有引用类型的值。
这是另一种深度克隆的方法,很简单,很实用:
代码如下:
var s = JSON.stringify( obj );
var o = JSON.parse( s );

文档

javascript克隆对象深度介绍_基础知识

javascript克隆对象深度介绍_基础知识:js一般有两种不同数据类型的值: 基本类型(包括undefined,Null,boolean,String,Number),按值传递; 引用类型(包括数组,对象),按址传递,引用类型在值传递的时候是内存中的地址。 克隆或者拷贝分为2种: 浅度克隆:基本类型为值传递,对象仍为引用
推荐度:
标签: 克隆 js 对象
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top