Phương thức Object.assign
Phương thức Object.assign sao chép thuộc tính và giá trị của đối tượng nguồn,
đồng thời trả về một đối tượng mới. Trong tham số đầu tiên của phương thức
chúng ta chỉ định đối tượng đích, nơi sẽ sao chép vào,
còn trong tham số thứ hai - chúng ta chỉ định các đối tượng cần sao chép.
Cú pháp
Object.assign(nơi sao chép vào, các đối tượng);
Ví dụ
Hãy lấy một đối tượng mới từ đối tượng nguồn:
let obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);
Kết quả thực thi mã:
{a: 1, b: 2, c: 3}
Ví dụ
Bây giờ hãy lấy một đối tượng mới từ nhiều đối tượng nguồn, bằng cách liệt kê chúng trong tham số và phân cách bằng dấu phẩy:
let obj1 = {'a': 1, 'b': 2};
let obj2 = {'c': 3, 'd': 4};
let newObj = Object.assign({}, obj1, obj2);
console.log(newObj);
Sau khi thực thi mã, chúng ta sẽ thấy rằng hai đối tượng nguồn đã hợp nhất thành một đối tượng mới:
{a: 1, b: 2, c: 3, d: 4}
Ví dụ
Ngoài ra, phương thức Object.assign
có thể được áp dụng để lấy một mảng mới,
vì mảng về kiểu cũng thuộc loại đối tượng.
Hãy tạo một mảng mới bằng cách sao chép các phần tử từ
mảng nguồn:
let arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);
console.log(newArr);
Kết quả thực thi mã:
[1, 2, 3, 4]
Ví dụ
Khi sử dụng phương thức Object.assign
cần chú ý tuân thủ chính xác cú pháp.
Ví dụ, nếu không thêm
đối tượng đích vào tham số đầu tiên, mà chỉ để
đối tượng cần sao chép, thì chính nó sẽ được trả về:
let obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);
console.log(newObj === obj);
Kết quả thực thi mã:
true
Xem thêm
-
phương thức
Object.keys,
trả về một mảng chứa các thuộc tính của đối tượng -
phương thức
Object.values,
trả về một mảng chứa các giá trị của đối tượng