Minh họa cách hoạt động của Object.assign()

Bí Kíp Giúp Bạn Hiểu Rõ Object.assign() trong Javascript

bởi

trong

“Anh em ơi, có ai dùng Object.assign() bao giờ chưa? Nghe bảo nó bá đạo lắm mà mình mù tịt”. Câu hỏi của thằng Minh, game thủ Liên Quân cứng cựa nhất team “LQmobile Cầu Giấy Hà Nội”, khiến cả đám chúng tôi phá lên cười. “Mày cứ đùa, Object.assign() mà cũng không biết thì đánh đấm gì nữa”. Tôi cười lớn, vỗ vai Minh. “Thôi được rồi, để tao chỉ cho vài chiêu”.

Object.assign() là gì mà ghê gớm vậy?

Nói đơn giản, Object.assign() giống như việc bạn kết hợp sức mạnh của các vị tướng Liên Quân vậy. Nó giúp gộp các thuộc tính của nhiều object khác nhau vào một object đích. Ví dụ nhé:

const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };

const result = Object.assign({}, obj1, obj2);
// Kết quả: { a: 1, b: 3, c: 4 }

Như bạn thấy đấy, thuộc tính b của obj2 đã ghi đè lên obj1.

Minh họa cách hoạt động của Object.assign()Minh họa cách hoạt động của Object.assign()

Giờ thì vận dụng Object.assign() vào đâu?

Trong Liên Quân, chiến thuật là yếu tố sống còn. Trong Javascript cũng vậy, Object.assign() là chiến thuật cực kỳ hữu ích khi:

  • Sao chép object: Muốn tạo bản sao của object, tránh thay đổi object gốc? Dùng Object.assign({}, obj) là xong!
  • Cập nhật object: Cần thêm thuộc tính mới cho object? Object.assign(obj, {newProp: 'newValue'}) sẽ giúp bạn!

Lời khuyên từ chuyên gia

Anh Nguyễn Văn A, lập trình viên kỳ cựu tại FPT Cầu Giấy, từng chia sẻ trong cuốn “Javascript – Bí Kíp Luyện Rồng”: “Object.assign() là công cụ mạnh mẽ, nhưng hãy cẩn trọng khi sử dụng. Nó chỉ sao chép nông (shallow copy), nghĩa là nếu object có chứa object lồng nhau, việc thay đổi object lồng nhau trong bản sao cũng ảnh hưởng đến object gốc”.

Còn chờ gì nữa?

Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về Object.assign(). Hãy luyện tập và áp dụng nó vào dự án của bạn ngay hôm nay.

Nếu cần hỗ trợ, hãy liên hệ Số Điện Thoại: 0372899999, Email: [email protected] Hoặc đến địa chỉ: 233 Cầu Giấy, Hà Nội. Chúng tôi có đội ngũ chăm sóc khách hàng 24/7.