Hướng dẫn object reference javascript
Lưu ý: Những điều mình sắp viết dưới đây là cách bày tỏ quan điểm cá nhân của mình về một vấn đề. Mà đã là quan điểm thì có thể có bạn thích, có bạn không thích vậy nên các bạn chỉ đọc với mục đích tham khảo, hay thì like còn không hay thì để lại bình luận về ý kiến nha. Xin cảm ơn Show Vấn đềObject Reference là một khái niệm thể hiện một biến tham chiếu, tức là thay vì lưu trữ giá trị thực nó lưu lại địa chỉ ô nhớ & thao tác với dữ liệu dựa trên địa chỉ đó. Điều này giúp tiết kiệm bộ nhớ cho các ứng dụng. Tuy nhiên cũng không ít điều phiền toái từ nó mà ra. Kiểu dữ liệu nguyên thuỷTrong Javascript, chúng ta có những kiểu dữ liệu “nguyên thuỷ” (Primitive Types) bao gồm: Các biến khi được khởi tạo với các giá trị này sẽ được cấp pháp một ô nhớ nhất định không có liên quan đến nhau. Ví dụ:
Bất kì khi nào thay đổi biến name thì những biến trước được gán bằng Object & ArrayKhông giống với Primitive Types, Object & Array, khi có nhiều hơn một biến được tạo để lưu trữ một
Nhìn vào ví dụ trên, khi phần tử thứ nhất trong Khi Những phiền toái“Quên” mất việc biến đang tham chiếuĐây cũng là trường hợp mình thấy phổ biến nhất. Khai báo một biến dựa trên một biến khác mà quên mất biến đó có tính chất reference. Những bạn mới vào nghề sẽ rất dễ bị mắc lỗi này, vì thế khi biết được tính chất này thì hãy tránh khai báo một biến dựa trên một biến khác nhé, thay vào đó hãy sao chép nó ra.
Ở ví dụ trên mình vừa copy Cách copy object bằng cú pháp spread (…) ở trên hay nhiều cách copy khác như dùng Thứ nhất là dùng tổ hợp cú pháp
Tuy nhiên đây lại là cách tồi nhất, do việc parse một Thứ hai là viết mã để thực hiện việc deep copy:
Và cuối cùng, sử dụng thư viện có sẵn các hàm Đặt một đối tượng dùng chungHình dung như bạn có một config để sử dụng làm mặc định nếu không tìm thấy những config riêng của chúng, bạn sẽ export ra một
Thì lúc này ở những file khác đang có import config.js thì Giải pháp cho vấn đề này là hãy deep clone config ra trước khi sử dụng. Để tránh việc thay đổi chúng sẽ dẫn đến những lỗi ngớ ngẩn mà có thể mất cả tuần để debug :D. Kết luậnKiến thức về Object Reference chỉ đơn giản là chỉ một biến tham chiếu. Khi làm việc với biến tham chiếu bạn phải hết sức cẩn thận để không phải mắc những sai lầm như tôi ở trên nhé! |