js物件深淺轉殖及封裝

2021-10-23 15:41:12 字數 1007 閱讀 9614

1.淺轉殖

var obj1 =

;var obj2 = obj1;

// 因為obj1 和 obj2 共用乙個位址,回到資料修改的時候彼此出現影響;

obj1.a =20;

console.

log(obj2)

;//20

2.深轉殖

var obj1 =

;var obj2 =

;// 轉殖 你有什麼我有什麼;

// 先去找到原物件裡面每乙個項資料;

for(

var attr in obj1)

obj1.a =30;

console.

log(obj2)

;//10

3.複雜物件轉殖

var obj1 =

, b :}}

var obj2 =

;for

(var attr in obj1)

console.

log(obj1.a === obj2.a)

;//true

// var obj1 = ,

// b :

// },

// c : //也可以時陣列格式

// }

4.深轉殖的遞迴封裝

function

cloneobj

( obj , type):[

]);for

(var attr in obj)

elseif(

typeof obj[attr]

==="object"

&&(obj[attr]

instanceof

array))

else

}return clone;

}

陣列 物件的轉殖(包括深 淺轉殖)

let arr1 3,4,5,6,let arr2 arr1.concat arr2 0 110 arr2 4 user liu console.log arr1 3,4,5,6,裡面的物件跟著改變了 console.log arr2 110,4,5,6,let arr1 3,4,5,6,let a...

JS陣列的深淺轉殖

陣列的拷貝,通常可以使用乙個新的陣列,指向現有陣列 var arr liuche zhouyafu huoqubing weiqing var arr2 arr arr2.push liguang alert arr liuche zhouyafu huoqubing weiqing liguang...

js物件的轉殖

由於js是採用引用傳值的,故修改任何乙個物件,其關聯的物件也會被改變,但很多時候我們只想得到乙個物件的拷貝,而非引用。下面提供了一種實現。不過除非程式中需要,否則要避免操作物件的拷貝,因為這樣會影響效能,造成太多的遞迴呼叫 too much recursive function clone o el...