Javascript sao chép một số thuộc tính từ đối tượng này sang đối tượng khác

Bởi vì các đối tượng trong JavaScript là các giá trị tham chiếu, bạn không thể chỉ sao chép bằng cách sử dụng

const obj = { one: 1, two: 2 };

const obj2 = obj;

console.log[
  obj, // {one: 1, two: 2};
  obj2, // {one: 1, two: 2};
];
6. Nhưng đừng lo, đây là 3 cách để bạn sao chép một đối tượng 👍

const food = { beef: '🥩', bacon: '🥓' }


// "Spread"
{ ...food }


// "Object.assign"
Object.assign[{}, food]


// "JSON"
JSON.parse[JSON.stringify[food]]

// RESULT:
// { beef: '🥩', bacon: '🥓' }

  • Đối tượng là loại tham chiếu
  • 1. Sử dụng trải rộng
  • 2. Sử dụng đối tượng. giao phó
  • 3. Sử dụng JSON
    • Lodash DeepClone so với JSON
  • Bản sao nông vs Bản sao sâu
    • Bản sao nông
    • Sao chép sâu
  • Hiệu suất
  • Đầu vào của cộng đồng
    • Mục tiêu. chỉ định vs lây lan
    • Bản sao sâu bằng thư viện bên ngoài
    • Nhiều cách sử dụng JavaScript hơn
  • Tài nguyên

# Đối tượng là loại tham chiếu

Câu hỏi đầu tiên của bạn có thể là, tại sao tôi không thể sử dụng

const obj = { one: 1, two: 2 };

const obj2 = obj;

console.log[
  obj, // {one: 1, two: 2};
  obj2, // {one: 1, two: 2};
];
6. Hãy xem điều gì sẽ xảy ra nếu chúng ta làm điều đó

const obj = { one: 1, two: 2 };

const obj2 = obj;

console.log[
  obj, // {one: 1, two: 2};
  obj2, // {one: 1, two: 2};
];

Cho đến nay, cả hai đối tượng dường như xuất ra cùng một thứ. Vì vậy, không có vấn đề, phải không. Nhưng hãy xem điều gì sẽ xảy ra nếu chúng ta chỉnh sửa đối tượng thứ hai

const obj2.three = 3;

console.log[obj2];
// {one: 1, two: 2, three: 3}; 

Chủ Đề