javaScript浅拷贝、深拷贝
栏目: JavaScript · 发布时间: 5年前
内容简介:数据类型js的数据类型有两种:1.基本数据类型:数值、字符串、布尔、null、undefined (值类型)
数据类型
js的数据类型有两种:
1.基本数据类型:数值、字符串、布尔、null、undefined (值类型)
存放在栈中,所以复制基本数据类型的值是会新开一个栈内存
2.引用数据类型:对象
对象引用存放在栈中,对象值存放在堆中,所以复制引用类型复制的是应用地址,而不是引用类型的值
浅拷贝
如果我们要复制对象的所有属性都不是引用类型时,就可以使用浅拷贝,实现方式就是遍历并复制,最后返回新的对象。
function simpleClone(initalObj) {
var obj = {}; for ( var i in initalObj) { obj[i] = initalObj[i]; } return obj; }
concat
slice
assign
深拷贝
深度拷贝就是把父对象拷贝到子对象上,而且两者的内存和以后的操作都互不影响的拷贝!
1.递归
2.借用JSON对象的parse和stringify
3.JQ的extend方法。
$.extend( [deep ], target, object1 ,[ objectN ] )
deep表示是否深拷贝,为true为深拷贝,为false,则为浅拷贝
target Object类型 目标对象,其他对象的成员属性将被附加到该对象上。
object1 objectN可选。 Object类型 第一个以及第N个被合并的对象
jQuery.extend()只复制可枚举的属性,不继承原型链,函数复制引用,内部循环引用不处理。而lodash实现的就更为优秀,它实现了结构化克隆算法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
经济学原理(第7版):微观经济学分册+宏观经济学分册(套装共2册)
曼昆 (N.Gregory Mankiw) / 梁小民、梁砾 / 北京大学出版社 / 2015-5-1 / 128
《经济学原理(第7版):微观经济学分册+宏观经济学分册》是目前国内市场上最受欢迎的引进版经济学教材之一,其最大特点是它的“学生导向”,它更多地强调经济学原理的应用和政策分析,而非经济学模型。第7版在延续该书一贯风格的同时,对第6版作了全面修订和改进。大幅更新了“新闻摘录”“案例研究”等专栏,拓展了章后习题。一起来看看 《经济学原理(第7版):微观经济学分册+宏观经济学分册(套装共2册)》 这本书的介绍吧!