複製物件重新賦值不改變原物件
// 直接賦值
var
obj1 = { a: 1 };
var
obj2 = obj1;
console.log(obj2);
// { a: 1 }
// 通過 Object.assign() 這個屬性來進行復制
var
obj = { a: 1 };
var
obj2 = Object.assign({}, obj);
console.log(obj2);
// { a: 1 }
// 通過 for in 迴圈賦值
var
obj1={ a: 1, b: { c: 2 }, c: 0 }
var
obj2={}
for
(
var
key
in
obj1 ){
obj2[key]=obj[key]
}
console.log(obj2);
// { a: 1, b: { c: 2 }, c: 0 }
// 使用 Object.assign() 方法複製物件
let
obj1 = { a: 0 , b: { c: 0}};
let
obj2 = Object.assign({}, obj1);
console.log(JSON.stringify(obj2));
// { a: 0, b: { c: 0}}
obj1.a = 1;
console.log(JSON.stringify(obj1));
// { a: 1, b: { c: 0}}
console.log(JSON.stringify(obj2));
// { a: 0, b: { c: 0}}
obj2.a = 2;
console.log(JSON.stringify(obj1));
// { a: 1, b: { c: 0}}
console.log(JSON.stringify(obj2));
// { a: 2, b: { c: 0}}
obj2.b.c = 3;
console.log(JSON.stringify(obj1));
// { a: 1, b: { c: 3}}
console.log(JSON.stringify(obj2));
// { a: 2, b: { c: 3}}
//得知字串型別可修改,物件失敗,
以上的方法可以封裝成方法方便使用
function
cloneObjectFn
(
obj
) {
return
JSON
.
parse
(
JSON
.
stringify
(
obj
))
}
var obj1={a:1,b:{c:2}}
var obj2=
cloneBojectFn(obj2)//複製物件
obj2.b.c=3;//修改物件
console.log(obj1)//
{a:1,b:{c:2}}
console.log(obj2)//
{a:1,b:{c:3}}
相關文章
- js陣列物件複製拷貝不改變原來的值,深拷貝JS陣列物件
- 物件屬性值賦給變數物件變數
- 給物件引用變數賦值(轉)物件變數賦值
- php之普通變數賦值、物件賦值、引用賦值的區別PHP變數賦值物件
- js中那些方法不改變原來的陣列物件JS陣列物件
- JAVA 物件引用,以及物件賦值Java物件賦值
- 物件賦值轉換物件賦值
- 複製物件物件
- JavaScript 物件解構賦值JavaScript物件賦值
- vue複製物件Vue物件
- javascript變數賦值或者重新賦值注意事項JavaScript變數賦值
- 改變複製物件結構對高階複製的影響物件
- JS物件複製:深複製和淺複製JS物件
- js物件深複製JS物件
- JavaScript物件複製理解JavaScript物件
- iOS之物件複製iOS物件
- js深度複製物件JS物件
- Javascript 解構賦值,將屬性/值從物件/陣列中取出,賦值給其他變數JavaScript賦值物件陣列變數
- java裡面給物件賦值,慎用賦值符號(=) (轉)Java物件賦值符號
- web中,利用反射給物件賦值Web反射物件賦值
- JavaScript 之物件拷貝與賦值JavaScript物件賦值
- PHP 物件導向 (四)類物件賦值為引用傳遞PHP物件賦值
- js物件的複製方法JS物件
- SpringBoot物件複製Spring Boot物件
- JS物件深度克隆/複製JS物件
- 把物件賦給int型變數物件變數
- Vue.js - 陣列和物件的賦值動態變化 & 克隆Vue.js陣列物件賦值
- vue實現物件的複製Vue物件
- vue物件的深層複製Vue物件
- JS 複製陣列和物件JS陣列物件
- C#中的物件深複製和淺複製C#物件
- 對於複製普通物件 深複製和淺複製是否一樣物件
- vue物件拷貝,解決由於引用賦值修改原物件的方法Vue物件賦值
- 淺談JS中物件的淺複製和深複製JS物件
- Java中物件的深複製和淺複製詳解Java物件
- VUE js中複製物件 JSONVue物件JSON
- C# 高效能物件複製C#物件
- JS 物件如何實現深複製JS物件