Copy Object Trong JavaScript
Có thể bạn quan tâm
Hướng dẫn cách copy Object trong JavaScript. Bạn sẽ học được 2 cách sao chép Object trong JavaScript sau bài học này.
Chúng ta có 2 phương pháp để copy/ sao chép object trong JavaScript như sau:
- Copy Object trong JavaScript bằng phương thức Object.assign
- Copy Object trong JavaScript bằng toán tử 3 chấm
Gán object cho một object khác trong JavaScript
Trong JavaScript, bằng cách sử dụng toán tử gán =, chúng ta có thể gán một object cho một object khác.
Tuy nhiên cần lưu ý là việc gán object chỉ tạo ra mối quan hệ tham chiếu của hai biến object tới cùng một bản thể object được lưu trong bộ nhớ máy tính, chứ không phải là copy object đó.
Ví dụ, chúng ta có xử lý gán object cho một object khác trong JavaScript như sau:
| let test = { a: 10, b: 15 };let test_copy = test;console.log(test); //{ a: 10, b: 15 }console.log(test_copy); //{ a: 10, b: 15 } |
Thoạt nhìn thì cách gán object cho một object khác này giống như chúng ta đang copy object vậy. Tuy nhiên do object thuộc kiểu dữ liệu đối tượng nên giá trị được lưu trong biến object chỉ là địa chỉ của object trên bộ nhớ máy tính. Do vậy khi gán một object cho một object khác, thực ra chúng ta đang tạo thêm một mối quan hệ tham chiếu từ một biến object tới địa chỉ object ban đầu, chứ không phải là copy object ban đầu.

Bởi thế, nếu chúng ta thay đổi giá trị của một trong hai object, thì kết quả object còn lại cũng sẽ bị thay đổi theo.
| let test = { a: 10, b: 15 };let test_copy = test;console.log(test_copy); //{ a: 10, b: 15 }//Thử sửa thuộc tính của object ban đầutest.a = 88;//Kết quả object được gán cũng thay đổi theoconsole.log(test_copy); //{ a: 88, b: 15 } |
Do vậy trong JavaScript, để sao chép object thì chúng ta không dùng toán tử gán, mà sẽ sử dụng tới một trong 2 phương pháp sau đây:
Copy Object trong JavaScript bằng Object.assign
Phương thức Object.assign vốn được sử dụng để Gộp 2 object trong Javascript. Tuy nhiên nếu chúng ta gộp object ban đầu với một object rỗng thì kết quả sẽ sao chép copy object ban đầu thành một object mới.
Ví dụ cụ thể:
| let test = { a: 10, b: 15 };let test_copy = Object.assign({}, test);console.log(test_copy); //{ a: 10, b: 15 }//Thử sửa thuộc tính của object ban đầutest.a = 88;//Nhưng object được sao chép là độc lập và sẽ không thay đổiconsole.log(test_copy); //{ a: 10, b: 15 } |
Copy Object trong JavaScript bằng toán tử 3 chấm
Toán tử 3 chấm có rất nhiều công dụng trong JavaScript, và một trong số đó chính là sử dụng nó để để tiến hành Copy Object trong JavaScript.
Và đây là cách làm ngắn gọn và đẹp nhất mà Kiyoshi biết để Copy Object trong JavaScript.
| let test = { a: 10, b: 15 };let test_copy = { ...test };console.log(test_copy); //{ a: 10, b: 15 } |
Cách viết này có thể khiến các bạn bối rối, tuy nhiên thì dòng ...test thực ra là để triển khai và viết tất cả các thuộc tính có trong object ban đầu ra thành a: 10, b: 15, và khi đặt nó giữa cặp dấu ngoặc nhọn thì sẽ thành cách khai báo object trong JavaScript cơ bản như sau:
| let test = { a: 10, b: 15 };let test_copy = { a: 10, b: 15 }; |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn về cách Copy Object trong JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.
URL Link
https://laptrinhcanban.com/javascript/javascript-co-ban-den-nang-cao/object-trong-javascript/copy-object-trong-javascript/
Từ khóa » Toán Tử 3 Chấm Trong Javascript
-
Toán Tử (...) đã Thay đổi Javascript (P1) - Viblo
-
Dấu Ba Chấm Trong JavaScript
-
Dấu Ba Chấm Trong Javascript - KungFu Tech
-
Ba Chấm Trong Javascript | Ngocnhan2003
-
4 Toán Tử JavaScript Với Dấu Chấm Hỏi - Trang Chủ - .vn
-
Toán Tử Ba Ngôi Trong JavaScript | Học Lập Trình JavaScript
-
Một Số Kỹ Thuật Rút Gọn Code Javascript - Kaopiz Kipalog
-
Ba Dấu Chấm Trong React Làm Gì? - HelpEx
-
Toán Tử Spread Và Các Trường Hợp Sử Dụng Của Nó Trong JavaScript
-
Toán Tử Bậc Ba Của JavaScript - Tech Wiki
-
Toán Tử Trong JavaScript - TEK4
-
Trong Python Có Chức Năng Nào Tương Tự Toán Tử 3 Chấm Trong Js ...
-
Phần 2: Toán Tử, Câu Lệnh điều Kiện, Vòng Lặp, Function, HOF, Arrow ...
-
18+ Kĩ Thuật Rút Gọn Code Javascript Của Bạn - TMA Solutions
-
Đối Tượng / Object Trong Javascript (đọc Hiểu Trong 5 Phút) - Freetuts
-
Tổng Hợp 14 Khái Niệm Cơ Bản Của JavaScript Bạn Cần Biết
-
Các Hàm Xử Lý Array - Mảng Trong Javascript - Code Từ Tâm
-
Những Cách Truyền Mảng Vào Hàm Trong Javascript - MyLop
-
Toán Tử Chấm Chấm (..) Trong Dart - Openplanning