Hướng dẫn how do you pass a value by reference in javascript? - làm thế nào để bạn chuyển một giá trị bằng tham chiếu trong javascript?
Trong bài viết này, chúng tôi sẽ nói về việc vượt qua giá trị và vượt qua tham chiếu trong JavaScript. & nbsp; Show Vượt qua giá trị: Trong Pass by giá trị, hàm được gọi bằng cách truyền trực tiếp giá trị của biến dưới dạng đối số. Vì vậy, bất kỳ thay đổi nào được thực hiện bên trong hàm không ảnh hưởng đến giá trị ban đầu. In Pass by value, function is called by directly passing the value of the variable as an argument. So any changes made inside the function does not affect the original value. Trong Pass by giá trị, các tham số được truyền dưới dạng một đối số tạo bản sao của riêng nó. Vì vậy, bất kỳ thay đổi nào được thực hiện bên trong hàm được thực hiện đối với giá trị sao chép không theo giá trị ban đầu.own copy. So any changes made inside the function is made to the copied value not to the original value . Hãy để chúng tôi lấy một ví dụ để hiểu rõ hơn: JavaScript
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 101
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 103
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 105 Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 function Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 108 Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 109 Updating the object reference -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20}0 Updating the object reference -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20}1 Updating the object reference -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20}2 Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 Updating the object reference -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20}4 Updating the object reference -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20}5 Updating the object reference -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20}6 Updating the object reference -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20}7 Updating the object reference -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20}8 Output: Before calling Pass by value Function -> a = 1 b = 2 Inside Pass by value function -> a = 2 b = 1 After calling Pass by value Function -> a =1 b = 2 Vượt qua tham chiếu: Trong tham chiếu vượt qua, hàm được gọi bằng cách truyền trực tiếp tham chiếu/địa chỉ của biến làm đối số. Vì vậy, thay đổi giá trị bên trong hàm cũng thay đổi giá trị ban đầu. Trong mảng JavaScript và đối tượng theo sau bởi thuộc tính tham chiếu. In Pass by Reference, Function is called by directly passing the reference/address of the variable as an argument. So changing the value inside the function also change the original value. In JavaScript array and Object follows pass by reference property. Trong tham chiếu vượt qua, các tham số được truyền dưới dạng đối số không tạo bản sao của riêng mình, nó đề cập đến giá trị ban đầu để các thay đổi được thực hiện bên trong ảnh hưởng đến giá trị ban đầu. & NBSP; Hãy để chúng tôi lấy một ví dụ để hiểu rõ hơn. JavaScript
Mutating the origanal object -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"}2
Mutating the origanal object -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"}4
Mutating the origanal object -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"}6
Mutating the origanal object -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"}8 Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 function 0Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 109
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 109
Output: Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 10
Vượt qua tham chiếu: Trong tham chiếu vượt qua, hàm được gọi bằng cách truyền trực tiếp tham chiếu/địa chỉ của biến làm đối số. Vì vậy, thay đổi giá trị bên trong hàm cũng thay đổi giá trị ban đầu. Trong mảng JavaScript và đối tượng theo sau bởi thuộc tính tham chiếu. Updating the object reference in the function. JavaScript
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 function 4Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 2Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 function Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 108
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 109
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 let tmp; 1
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 109
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 109
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 4
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 4
Output: Updating the object reference -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20} Vượt qua tham chiếu: Trong tham chiếu vượt qua, hàm được gọi bằng cách truyền trực tiếp tham chiếu/địa chỉ của biến làm đối số. Vì vậy, thay đổi giá trị bên trong hàm cũng thay đổi giá trị ban đầu. Trong mảng JavaScript và đối tượng theo sau bởi thuộc tính tham chiếu. Mutating the original Object. JavaScript
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 let tmp; 1
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 109
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 109 Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 1010 Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 1011 Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 4
Before calling Pass By Reference Function -> a = 10 b = 20 Inside Pass By Reference Function -> a = 20 b = 10 After calling Pass By Reference Function -> a = 20 b = 106 4
Output: Mutating the origanal object -> Before calling PassByReference Function -> obj {a: 10, b: 20} Inside PassbyReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} After calling PassByReference Function -> obj {a: 10, b: 20, c: "GEEKSFORGEEKS"} Làm thế nào để bạn vượt qua giá trị bằng cách tham khảo?Để truyền một giá trị bằng cách tham chiếu, các gợi ý đối số được chuyển đến các hàm giống như bất kỳ giá trị nào khác. Vì vậy, theo đó, bạn cần khai báo các tham số hàm là loại con trỏ như trong hoán đổi hàm sau (), trao đổi các giá trị của hai biến số nguyên được trỏ đến, bằng các đối số của chúng.argument pointers are passed to the functions just like any other value. So accordingly you need to declare the function parameters as pointer types as in the following function swap(), which exchanges the values of the two integer variables pointed to, by their arguments.
Truyền qua giá trị là gì và vượt qua tham chiếu trong JavaScript là gì?Trong giá trị Pass-By trong JavaScript, một bản sao của biến gốc được tạo, do đó, bất kỳ thay đổi nào được thực hiện đối với biến được sao chép không ảnh hưởng đến biến ban đầu.Trong tài liệu tham khảo qua JavaScript, chúng tôi vượt qua tham chiếu của tham số thực tế.Không có bản sao nào được tạo trong bộ nhớ.
JavaScript là tham chiếu hay theo giá trị?Trong JavaScript, bạn có thể chuyển qua giá trị và bằng cách tham khảo.Sự khác biệt chính giữa hai là chuyển qua giá trị xảy ra khi gán nguyên thủy trong khi truyền bằng cách tham chiếu khi gán các đối tượng.
Là JS vượt qua giá trị hay vượt qua tham chiếu?Nó luôn luôn vượt qua giá trị, nhưng đối với các đối tượng, giá trị của biến là một tham chiếu.Bởi vì điều này, khi bạn vượt qua một đối tượng và thay đổi các thành viên của nó, những thay đổi đó vẫn tồn tại bên ngoài chức năng.Điều này làm cho nó trông giống như vượt qua bởi tài liệu tham khảo.. Because of this, when you pass an object and change its members, those changes persist outside of the function. This makes it look like pass by reference. |