数据类型js的数据类型有两种:1.基本数据类型:数值、字符串、布尔、null、undefined (值类型)存放在栈中,所以复制基本数据类型的值是会新开一个栈内存2.引用数据类型:对象对象引用存放在栈中,对象值存放在堆中,所以复制引用类型复制的是应用地址,而不是引用类型的值浅拷贝如果我们要复制对象的所有属性都不是引用类型时,就可以使用浅拷贝,实现方式就是遍历并复制,最后返回新的对象。function simpleClone(initalObj) { var obj = {}; for ( var i in initalObj) { obj[i] = initalObj[i]; } return obj; }concatsliceassign深拷贝深度拷贝就是把父对象拷贝到子对象上,而且两者的内存和以后的操作都互不影响的拷贝!1.递归2.借用JSON对象的parse和stringify3.JQ的extend方法。$.extend( [deep ], target, object1 ,[ objectN ] )deep表示是否深拷贝,为true为深拷贝,为false,则为浅拷贝target Object类型 目标对象,其他对象的成员属性将被附加到该对象上。object1 objectN可选。 Object类型 第一个以及第N个被合并的对象jQuery.extend()只复制可枚举的属性,不继承原型链,函数复制引用,内部循环引用不处理。而lodash实现的就更为优秀,它实现了结构化克隆算法。