#如上圖,據描述,Object.assign()為淺拷貝, 為什麼改變屬性a不是指向同一個引用,而b.c指向了同一個引用?
var deepCopy = function(src) { var ret = {} for (var k in src) { ret[k] = typeof src[k] ==='object' ? deepCopy(src[k]) : src[k] } return ret }
深拷貝一直用這個方法, Object.assgin 只能深拷貝第一層, 深層的還是淺拷貝, 記住這個就行了
雷雷
淺拷貝:如果屬性元素為複雜雜資料型別時,內層元素拷貝引用;slice, concat, jQury的$.extend({},obj)jQury的
slice
concat
jQury
$.extend({},obj)
深拷貝一直用這個方法, Object.assgin 只能深拷貝第一層, 深層的還是淺拷貝, 記住這個就行了
雷雷
淺拷貝:如果屬性元素為複雜雜資料型別時,內層元素拷貝引用;
$.extend({},obj)🎜jQury🎜的🎜$.extend({},obj)🎜jQury🎜的🎜$.extend({},obj)🎜jQury🎜的🎜$.extend({},obj)🎜jQury🎜的🎜$點這裡了解詳情🎜slice
,concat
,jQury
的$.extend({},obj)
jQury的