Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách sao chép property object sang object khác trong JavaScript

Object.assign() copy tất cả **own enumerable properties** từ 1+ source object vào target object. Trả về target object.

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 } (không đổi)

Lưu ý quan trọng

  • Chỉ copy **own enumerable properties** (không prototype, không non-enumerable).
  • Dùng [[Get]] trên source, [[Set]] trên target → **kích hoạt getter/setter**.
  • **Shallow copy**: object lồng nhau vẫn chung reference.
  • Source object **không bị thay đổi**.

ES2018: Spread syntax {...target, ...source} cũng làm tương tự (nhưng không invoke setter).