js深拷贝与浅拷贝
简单来区别下深拷贝和浅拷贝:假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,这就是浅拷贝;如果B没变,那就是深拷贝
简单来区别下深拷贝和浅拷贝:假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,这就是浅拷贝;如果B没变,那就是深拷贝
基本数据类型:number,string,boolean,null,undefined。
引用数据类型:对象,数组,函数
a.基本类型–名、值存储在栈内存中
b.引用数据类型–名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值
一、浅拷贝
原始类型为值传递,对象类型仍为引用传递
二、深拷贝
2.1 方式一
1 |
|
2.2 方式二
1 | /** |
三、$.extend()
$.extend( [deep ], target, object1 [, objectN ] )
deep表示是否深拷贝,为true为深拷贝,为false,则为浅拷贝
target: Object类型
目标对象,其他对象的成员属性将被附加到该对象上。
object1 objectN可选。 Object类型
第一个以及第N个被合并的对象。