object.assign deep copy in javascript

Nội dung bài viết

Video học lập trình mỗi ngày

Update object.assign() khi sử dụng copy object chính là shallow copy.

Object là thứ làm cho JavaScript trở thành một ngôn ngữ lập trình mạnh mẽ. Các đối tượng cho phép bạn nhóm các kiểu dữ liệu khác nhau. Nếu bạn muốn tìm hiểu bất kỳ khung JavaScript mới nào như React, Vue hoặc Angular, bạn phải biết cách sử dụng các đối tượng và các phương thức của nó.

Các phiên bản JavaScript mới mang lại các phương thức mới cho các đối tượng khiến chúng trở nên thú vị hơn. JS hiện tại cung cấp rất nhiều phương thức mới. Và trong bài này mình chỉ tìm hiểu và giới thiệu cho những bạn chưa biết về object.assign().


object.assign() là một trong những method hiệu quả với những người code sâu về JS. Cho nên các bạn đang tìm hiểu về JS cũng nên tìm hiểu và áp dụng chúng trong những trường hợp sau...


Đọc thêm: Sự khác biệt giữa shallow copy và deep copying trong javascript khi sử dụng object.assign()


object.assign() là gì?


object.assign() là một method nhưng (multiple jobs) nó có nhiều nhiệm vụ trong đó bao gồm những nhiệm vụ copy an object, clone từ một object khác, và nối hai hay nhiều object lại với nhau. Giờ ta đi những ví dụ cụ thể hơn nhằm để hiểu rõ hơn


copy the values from another object:

const obj1 = {
name: 'Anony Stick'
}
const obj2 = {
age: 25,
  car: 'Vinfast',
  school: 'VinSchool'  
}
Object.assign(obj1, obj2);
console.log(obj1);
//{name: "Anony Stick", age: 25, car: "Vinfast", school: "VinSchool"}


Clone từ object khác


TipsDeep copy object array function in javascript 


//Clone an object to a new object
const obj3 = {
age: 25,
  car: 'Vinfast',
  school: 'VinSchool'  
}
const obj4 = Object.assign({}, obj3);
console.log(obj4);
//{age: 25, car: "Vinfast", school: "VinSchool"}


Dùng để merge duplicate properties trong object


Tips: Javascript object array - when to Use Array and use object in javascript


 //merge duplicate properties with Object.assign()
const obj5 = {
name: 'Pham Nhat Vuong',
age: 55,
  car: 'Vinfast',
  school: 'VinSchool'  
}
const obj6 = {
name: 'Pham Nhat Phong',
age: 25,
  moto: 'VinBike',
  spot: 'Bong da'  
}
const obj7 = Object.assign({}, obj5, obj6);
console.log(obj7);
//{name: "Pham Nhat Phong", age: 25, car: "Vinfast", school: "VinSchool", moto: "VinBike", …}


JavaScript Snippet


'use strict';

// Merge an object
let first = {name: 'Tony'};
let last = {lastName: 'Stark'};
let person = Object.assign(first, last);
ChromeSamples.log(person);
// {name: 'Tony', lastName: 'Stark'}
ChromeSamples.log(first);
// first = {name: 'Tony', lastName: 'Stark'} as the target also changed

// Merge multiple sources
let a = Object.assign({foo: 0}, {bar: 1}, {baz: 2});
ChromeSamples.log(a);
// {foo: 0, bar: 1, baz: 2}

// Merge and overwrite equal keys
let b = Object.assign({foo: 0}, {foo: 1}, {foo: 2});
ChromeSamples.log(b);
// {foo: 2}

// Clone an object
let obj = {person: 'Thor Odinson'};
let clone = Object.assign({}, obj);
ChromeSamples.log(clone);
// {person: 'Thor Odinson'}

Kết luận


Đọc thêm: Sự khác biệt giữa shallow copy và deep copying trong javascript khi sử dụng object.assign()


Tôi vừa trình bày các phương thức dựng sẵn mới được giới thiệu bởi JavaScript. Với các tính năng tuyệt vời mới này, chúng ta không sử dụng cú pháp và phương pháp cũ nữa trong mã của mình. Các phương thức mới cho phép bạn viết mã JavaScript thành thạo và hiệu suất cao hơn và giản tiện rất nhiều trong các dự án. 

Có thể bạn đã bị missing