深淺拷貝 拷貝乙個js的函式

2021-10-23 06:20:59 字數 1176 閱讀 4975

深淺拷貝概念&實現方法鏈結

拷貝乙個js的函式

function

fun(

)// return後面必須多出乙個空格

var copy =

(new

function

('return '

+fun.

tostring()

))()

淺拷貝的方法
object.assign()
陣列中concat和slice方法
var arr = 

var target = [...arr]

深拷貝

簡單的

json

.parse

(json

.stringify

(obj)

)

全面的

function

deepcopy

(obj)

}else

if(object.prototype.tostring.

call

(obj)

=='[object object]'

)for

(var attr in obj)

}//值型別直接返回

else

return result

}

方法二
/**

* @description // 判斷型別

*/function

typeof

(obj)

return map[tostring.

call

(obj)]}

/** * @description // 深拷貝

*/export

const

deepcopy

=function

(data)

else

if(t ===

'object')}

else

if(t ===

'array')}

else

if(t ===

'object')}

return o

}

JS深 淺拷貝

在js中,資料型別分為基本資料型別和引用資料型別兩種。對於基本資料型別來說,它的值直接儲存在棧記憶體中,而對於引用型別來說,它在棧記憶體中只是儲存了乙個指向對記憶體的引用,而真正的資料儲存在堆記憶體中。object array 這兩個就是引用型別,當我門直接去拷貝的話 copyobj obj 拷貝的...

js 深淺拷貝

深拷貝就是複製內部內容 淺拷貝就是複製記憶體位址 var obj 淺拷貝 引用傳遞 淺拷貝就是賦值,將鑰匙複製乙份 var o obj 深拷貝 內部內容複製乙份 將房子複製乙份 方法一 var str json stringify obj var obj3 json parse str 方法二 va...

js深淺拷貝

1.什麼是深淺拷貝 簡單的來說,加入b複製a a改變 如果b也跟著改變的話,那就是淺拷貝,反之是深拷貝 實現淺拷貝方法 1.賦值操作 var a 0 1,2 3,4 var b a a 0 5console log a 5,1,2,3,4 console log b 5,1,2,3,4 2.es6 ...