Trung BìnhJavaScript iconJavaScript

Object.assign() và spread operator khi copy object khác nhau như thế nào?

Cả hai đều shallow copy. Object.assign() copy vào object đích hiện có, trigger setters trên target. Spread tạo plain object mới, không trigger setters.

Object.assign() copy enumerable own properties bao gồm cả Symbol. Với nested objects, cả hai chỉ copy reference, không deep copy.

javascript
const target = { a: 1 };
const result = Object.assign(target, { b: 2 }); // mutates target
const spread = { ...target, c: 3 };             // new object

Xem toàn bộ JavaScript cùng filter theo level & chủ đề con.

Mở danh sách JavaScript