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

Sao chép object với Object.assign() trong JavaScript

Object.assign(target, ...sources) copy các thuộc tính enumerable own properties từ source objects vào target object.

Ví dụ


var source = { 
    compute: x => x + 1000 
};

// Shallow copy
var copied = Object.assign({}, source);

console.log("Kết quả:", copied.compute(1000)); // 2000

Cách chạy

node demo.js

Kết quả

Kết quả: 2000

Lưu ý quan trọng: Object.assign() là **shallow copy** (copy 1 cấp). Object lồng nhau vẫn chia sẻ tham chiếu:


var obj = { a: 1, nested: { b: 2 } };
var copy = Object.assign({}, obj);
copy.nested.b = 99;
console.log(obj.nested.b); // 99 - object gốc bị ảnh hưởng!

Deep clone: Dùng JSON.parse(JSON.stringify(obj)) hoặc structuredClone(obj) (modern).