Gọi theo giá trị: Giả sử có một biến có tên là A A. Bây giờ, chúng tôi lưu trữ một giá trị nguyên thủy [Boolean, Integer, Float, v.v.] trong biến A A A. Suppose there is a variable named “a”. Now, we store a primitive value[boolean, integer, float, etc] in the variable “a”.
Hãy để chúng tôi lưu trữ một giá trị số nguyên trong một cách khác, hãy để a = 5. Bây giờ, biến số A A A ANTERS 5 và có một vị trí địa chỉ nơi giá trị nguyên thủy đó nằm trong bộ nhớ.“a”, Let a=5. Now the variable “a” stores 5 and has an address location where that primitive value sits in memory.
Bây giờ, giả sử chúng tôi sao chép giá trị của một người khác trong B By Biên bằng cách gán [a = b]. Bây giờ, B B Biêu chỉ vào một vị trí mới trong bộ nhớ, chứa cùng một dữ liệu với biến số A A.“a” in “b” by assignment [a=b]. Now, “b” points to a new location in memory, containing the same data as variable “a”.
Do đó, a = b = 5 nhưng cả hai điểm đến các vị trí riêng biệt trong bộ nhớ.
Cách tiếp cận này được gọi là cuộc gọi theo giá trị trong đó 2 biến trở nên giống nhau bằng cách sao chép giá trị nhưng trong 2 điểm riêng biệt trong bộ nhớ.call by value where 2 variables become the same by copying the value but in 2 separate spots in the memory.
Các tính năng của cuộc gọi theo giá trị:
- Đối số chức năng luôn được truyền bởi giá trị.
- Nó sao chép giá trị của một biến được truyền trong một hàm cho một biến cục bộ.
- Cả hai biến này chiếm các vị trí riêng biệt trong bộ nhớ. Do đó, nếu các thay đổi được thực hiện trong một biến cụ thể, nó không ảnh hưởng đến biến khác.
Example:
JavaScript
var
a = 5;
var
b;
"text/javascript"
0
"text/javascript"
2
"text/javascript"
4
"text/javascript"
6
"text/javascript"
7
Đầu ra: Một lần nữa là một bản sao của A A. Nó có không gian riêng trong bộ nhớ. Khi chúng tôi thay đổi, một người khác, nó không có bất kỳ tác động nào đến giá trị của B B B. & NBSP;was just a copy of “a”. It has its own space in memory. When we change “a” it does not have any impact on the value of “b”.
Theo giá trị
Gọi bằng cách tham khảo: Hãy nói, chúng tôi có một đối tượng được lưu trữ trong biến A A A. Biến lưu trữ vị trí hoặc địa chỉ nơi đối tượng sống. Bây giờ chúng tôi đặt b = a. Bây giờ, biến mới của Bỉ, thay vì chỉ vào một vị trí mới trong bộ nhớ, chỉ vào cùng một vị trí nơi mà A A làm việc. Không có đối tượng mới được tạo, không có bản sao được tạo. Cả hai biến chỉ vào cùng một đối tượng. Điều này giống như có 2 tên. Let’s say, we have an object stored in the variable “a”. The variable stores the location or the address where the object lives. Now we set b=a. Now that new variable “b” instead of pointing to a new location in the memory, points to the same location where “a” does. No new object is created, no copy is created. Both the variables point to the same object. This is like having 2 names.
Đây là cuộc gọi bằng cách tham khảo. Nó hành xử hoàn toàn khác với giá trị. Tất cả các đối tượng tương tác bằng cách tham chiếu. call by reference. It behaves quite differently from by value. All objects interact by reference.
Các tính năng của tài liệu tham khảo:
- Trong JavaScript, tất cả các đối tượng tương tác bằng tham chiếu.
- Nếu một đối tượng được lưu trữ trong một biến và biến đó được tạo bằng với một biến khác thì cả hai đều chiếm cùng một vị trí trong bộ nhớ.
- Thay đổi trong một biến đối tượng ảnh hưởng đến biến đối tượng khác.
Ví dụ: Ở đây, khi chúng ta đặt D = C, thì D D đã chỉ vào cùng một vị trí trong bộ nhớ trong đó, C C C. Lúc đầu, chúng tôi có một cặp giá trị tên được lưu trữ trong C C C. Bây giờ khi chúng ta thay đổi một thuộc tính bằng cách sử dụng C C, nó sẽ thay đổi thuộc tính trong D D D, vì cả hai đều chỉ vào cùng một đối tượng. Thay đổi trong một nó ảnh hưởng.Over here, when we set d=c, “d” points to the same location in memory where “c” does. At first, we have a name-value pair stored in “c”. Now when we change a property using “c”, it changes the property in “d” also because both point to the same object. Changes in one it affects.
JavaScript
"text/javascript"
8
var
>
1>
2 >
3
var
>
6
>
8
0
1
2
4
6
"text/javascript"
7
Output:
Đầu ra: Một lần nữa là một bản sao của A A. Nó có không gian riêng trong bộ nhớ. Khi chúng tôi thay đổi, một người khác, nó không có bất kỳ tác động nào đến giá trị của B B B. & NBSP;
Theo giá trị
Gọi bằng cách tham khảo: Hãy nói, chúng tôi có một đối tượng được lưu trữ trong biến A A A. Biến lưu trữ vị trí hoặc địa chỉ nơi đối tượng sống. Bây giờ chúng tôi đặt b = a. Bây giờ, biến mới của Bỉ, thay vì chỉ vào một vị trí mới trong bộ nhớ, chỉ vào cùng một vị trí nơi mà A A làm việc. Không có đối tượng mới được tạo, không có bản sao được tạo. Cả hai biến chỉ vào cùng một đối tượng. Điều này giống như có 2 tên. | Đây là cuộc gọi bằng cách tham khảo. Nó hành xử hoàn toàn khác với giá trị. Tất cả các đối tượng tương tác bằng cách tham chiếu. |
Các tính năng của tài liệu tham khảo: | Trong JavaScript, tất cả các đối tượng tương tác bằng tham chiếu. |
Nếu một đối tượng được lưu trữ trong một biến và biến đó được tạo bằng với một biến khác thì cả hai đều chiếm cùng một vị trí trong bộ nhớ. | Thay đổi trong một biến đối tượng ảnh hưởng đến biến đối tượng khác. |
Ví dụ: Ở đây, khi chúng ta đặt D = C, thì D D đã chỉ vào cùng một vị trí trong bộ nhớ trong đó, C C C. Lúc đầu, chúng tôi có một cặp giá trị tên được lưu trữ trong C C C. Bây giờ khi chúng ta thay đổi một thuộc tính bằng cách sử dụng C C, nó sẽ thay đổi thuộc tính trong D D D, vì cả hai đều chỉ vào cùng một đối tượng. Thay đổi trong một nó ảnh hưởng. | JavaScript |