首先,js中的數(shù)據(jù)類型有簡單類型和引用類型。
對于字符串類型,淺克隆是對值的復(fù)制,對于對象:
淺克隆是指沒有開辟新的棧,是對對象地址的復(fù)制。共享同一塊內(nèi)存地址,一個對象的改變影響了另一個對象。
深克隆是指兩個對象對應(yīng)不同的地址。
JQuery中的extend的第一個參數(shù)可以設(shè)置是否為深拷貝
//深拷貝
var obj = {a:{a:1}};
var obj1 = {a:{a:2}};
$.extend(true, obj, obj1);
最簡單的深拷貝
b = JSON.parse( JSON.stringify(a) )
//缺點
無法復(fù)制函數(shù)
原型鏈沒了,對象就是object,所屬的類沒了。