Menu
CoddyTech

Toán tử spread phần 1

Thuộc phần Logic và luồng chương trình trong hành trình JavaScript của Coddy. Bài học 18 trên 65.

Toán tử spread (...) có nhiều cách sử dụng với JSON. Chẳng hạn, khi thực hiện thao tác sau:

const obj1 = {key1: "123"}
const obj2 = obj1
obj1.key1 = "456"
console.log(obj2.key1)

Kết quả sẽ là gì?

console.log(obj2.key1)
// Đầu ra: "456"

Điều này có thể khiến bạn ngạc nhiên! Dù chúng ta chỉ thay đổi obj1, obj2 cũng thay đổi.

Điều này xảy ra vì khi gán trực tiếp các đối tượng (obj2 = obj1), chúng ta tạo một tham chiếu chứ không phải bản sao. Cả hai biến đều trỏ đến cùng một đối tượng trong bộ nhớ.

Đây là lúc toán tử spread trở nên hữu ích. Hãy xem cách tạo một bản sao thực sự:

const obj1 = {key1: "123"};
const obj2 = {...obj1};
obj1.key1 = "456";
console.log(obj2.key1);
// Đầu ra: "123"

Toán tử spread tạo một đối tượng mới và sao chép tất cả thuộc tính có thể liệt kê từ đối tượng nguồn sang đối tượng mới.

Tự làm thử

Bài học này không có thử thách code.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch JavaScript online