深拷貝淺拷貝 原型及原型鏈 型別校驗

2021-10-14 16:13:13 字數 702 閱讀 9725

let a = b  //指向一致,更改a的值會影響b
let newarr =

[...arr]

//如果arr結構裡有複雜資料型別的話也是引用

object.assign()合併物件

let newarr = object.

assign([

],arr)

//返回乙個新的陣列,弊端跟擴充套件運算子拷貝一樣

json進行深拷貝

let obj =

json

.parse

(json

.stringify

(obj)

)

遞迴進行深拷貝

let arr =[1

,2,]

//在物件原型上新增乙個深拷貝的方法

object.prototype.

copy

=function

(data)

else

//迴圈拷貝

for(

let key in data)

else

return deepdata

}}let newarr =

copy

(arr)

深拷貝淺拷貝,原型,型別校驗,遞迴深拷貝

遇見乙個問題,解決的時候衍生出了幾條底層原理。為此做一下總結 let arr 1 2 3 宣告乙個陣列,要求對陣列進行深拷貝 一 深拷貝和淺拷貝的區別 所有基礎資料型別 string,number,null,undefind,boolean 進行賦值時都是深拷貝 所有宣告的變數在賦值引用資料型別時,...

C 原型模式(深拷貝 淺拷貝)

建立原型 public abstract class base public int age public base public base string name,int age 深拷貝 public abstract base clone 淺拷貝 public abstract base mcl...

設計模式 原型模式深度理解淺拷貝深拷貝原理

一,棧 二,堆 先看看什麼是棧,什麼是堆,至於為什麼要這裡開頭就講棧和堆的解釋,原因後在後面有解釋,請往下看,直接上例項 淺拷貝例項 淺拷貝 public class weekreport implements cloneable serializable public void setemp st...