Understand JavaScript - By Value vs By Reference

Đến lúc chúng ta đi đến một khái niệm hết sức quan trọng đó là By Value (theo giá trị) và By Reference (theo tham chiếu) hiểu được giá trị này rất quan trọng nó không chỉ bổ sung kiến thức về JS cho bạn mà còn cung cấp cho bạn khả năng debug , trong khi nói đến 2 từ khóa này bạn hãy rằng mình đang nói về các biến.

Giả sử bạn đang có một biến a được gán giá trị kiểu Primitve bằng 3 như vậy có nghĩa biến a có được địa chỉ vùng nhớ chứa giá trị "3" , bạn gán biến b = a như vậy MỘT VÙNG NHỚ KHÁC sẽ được tạo ra để lưu trữ giá trị biến b , cách tiếp cận này được gọi là By Value , 2 biến được gán theo kiểu này sẽ có giá trị bằng nhau nhưng chúng trỏ đến 2 vùng nhớ khác nhau.

 Vậy còn với kiểu dữ liệu Object thì sao ??
Khi mình gán giá trị biến a cho một Object nó cũng trỏ đến vùng nhớ mà Object được đặt trên , nhưng khi bạn gán giá trị một biến b mới = với biến a sẽ KHÔNG CÓ VÙNG NHỚ ĐƯỢC TẠO RA
a và b sẽ cùng nhìn vào một vùng nhớ điều này được gọi là Reference.
Điều quan trọng bạn phải hiểu rằng tất cả các đối tượng (bao gồm cả hàm ) đều tương tác bằng cách tham chiếu khi bạn gán chúng bằng nhau hay bạn truyền chúng vào hàm như tham số.

Nhận xét

Bài đăng phổ biến