Object.assign(target, ...sources) copy **own enumerable properties** từ source(s) vào target. Trả về target đã mutate.
Ví dụ
const targetObj = { a: 1, b: 2 };
const sourceObj = { b: 4, c: 5 };
const returnedTarget = Object.assign(targetObj, sourceObj);
console.log(targetObj); // { a: 1, b: 4, c: 5 }
console.log(returnedTarget); // { a: 1, b: 4, c: 5 }
console.log(returnedTarget === targetObj); // true
console.log(sourceObj); // { b: 4, c: 5 } (giữ nguyên)
Đặc điểm
- Shallow copy (object lồng nhau shared reference).
- Ghi đè property trùng tên (source sau thắng).
- Invoke getter trên source, setter trên target.
- Source không bị mutate.
Dùng cho: Merge config, clone shallow, default options pattern.