js 非建構函式實現繼承 深拷貝

2021-09-07 05:02:40 字數 487 閱讀 1446

// 非建構函式的繼承(深度拷貝)

var chinese = ;

for (var i in p) ;

deepcopy(p[i], c[i]);

} else {

c[i] = p[i];

return c;

var doctor = deepcopy(chinese);

//現在,給父物件加乙個屬性,值為陣列。然後,在子物件上修改這個屬性

chinese.birthplaces = ['北京','上海','香港'];

doctor.birthplaces.push('廈門');

//這時,父物件就不會受到影響了

console.log(doctor.birthplaces); //北京, 上海, 香港, 廈門

console.log(chinese.birthplaces); //北京, 上海, 香港

//目前,jquery庫使用的就是這種繼承方法

JS深拷貝繼承

所謂深拷貝,就是子物件不緊繼承父物件的非引用屬性,還能繼承父物件的引用屬性 object,array 當子物件對繼承的引用型別屬性做修改時,父物件的引用型別不會被修改。我們先寫個淺拷貝的封裝函式 function extendcopy parent for var i in parent child...

拷貝建構函式淺拷貝深拷貝

1 函式的引數為類物件且引數採用值傳遞方式 2 將類物件做為函式的返回值。2.淺拷貝 所謂淺拷貝,指的是在物件複製時,只對物件中的資料成員進行簡單的賦值 預設拷貝建構函式執行的也是淺拷貝。大多情況下 淺拷貝 已經能很好地 工作了,但是一旦物件存在了動態成員,那麼淺拷貝就會出問題了,讓我們考慮如下一段...

拷貝建構函式,深拷貝,淺拷貝

深淺拷貝的區別 淺拷貝是將原始物件中的資料型字段拷貝到新物件中去,將引用型字段的 引用 複製到新物件中去,不把 引用的物件 複製進去,所以原始物件和新物件引用同一物件 新物件中的引用型字段發生變化會導致原始物件中的對應欄位也發生變化。line line const line obj 深拷貝是在引用方...