Hướng dẫn what is passed by value in javascript? - những gì được thông qua bởi giá trị trong javascript?
Tóm tắt: & NBSP; Hướng dẫn này giải thích cách thức hoạt động của JavaScript Pass-By-Value và cung cấp cho bạn một số ví dụ về việc truyền các giá trị nguyên thủy và tham chiếu cho một hàm.: this tutorial explains how JavaScript pass-by-value works and gives you some examples of passing primitive and reference values to a function. Show
Trước khi đi về phía trước với hướng dẫn này, bạn nên có kiến thức tốt về các giá trị nguyên thủy và tham chiếu, và sự khác biệt giữa chúng. JavaScript Pass-By-Value hoặc Pass-TtefTrong JavaScript, tất cả các đối số hàm luôn được truyền bởi giá trị. Nó có nghĩa là & nbsp; javascript sao chép các giá trị của các biến vào các đối số hàm. Bất kỳ thay đổi nào bạn thực hiện đối với các đối số bên trong hàm không phản ánh các biến vượt qua bên ngoài hàm. Nói cách khác, những thay đổi được thực hiện đối với các đối số không được phản ánh bên ngoài hàm. Nếu các đối số chức năng được truyền bằng tham chiếu, các thay đổi của các biến mà bạn chuyển vào hàm sẽ được phản ánh bên ngoài hàm. Điều này là không thể trong JavaScript. Qua giá trị của các giá trị nguyên thủyHãy cùng xem một ví dụ sau.
Cách tập lệnh hoạt động. Đầu tiên, xác định hàm Tiếp theo, khai báo biến Sau đó, chuyển biến Sau đó, hàm Cuối cùng, & nbsp; giá trị của biến Nếu JavaScript đã sử dụng & nbsp; từng tham chiếu, biến ________ 8 & nbsp; sẽ thay đổi thành 4 sau khi gọi hàm. Qua giá trị của & nbsp; giá trị tham chiếuNó không rõ ràng để thấy rằng các giá trị tham chiếu cũng được truyền bởi các giá trị. Ví dụ:
Kịch bản hoạt động như thế nào: Đầu tiên, xác định biến 5 tham chiếu một đối tượng có hai thuộc tính 6 và 7: Tiếp theo, xác định hàm 8 chấp nhận một đối tượng 9 và tăng thuộc tính 7 của đối số 9 lên một. Sau đó, chuyển đối tượng 5 cho hàm 8: Trong nội bộ, công cụ JavaScript tạo tham chiếu 9 và làm cho tham chiếu biến này cùng một đối tượng mà các tham chiếu biến 5. Sau đó, tăng thuộc tính 7 lên một bên trong hàm 8 thông qua biến 9 Cuối cùng, truy cập đối tượng thông qua tham chiếu 5:
Có vẻ như JavaScript chuyển một đối tượng bằng cách tham chiếu vì sự thay đổi đối với đối tượng được phản ánh bên ngoài hàm. Tuy nhiên, & nbsp; đây không phải là trường hợp. Trong thực tế, khi chuyển một đối tượng cho một hàm, bạn đang chuyển tham chiếu của đối tượng đó chứ không phải đối tượng thực tế. Do đó, hàm có thể sửa đổi các thuộc tính của đối tượng thông qua tham chiếu của nó. Tuy nhiên, bạn không thể thay đổi tham chiếu được truyền vào hàm. Ví dụ:
Output:
Trong ví dụ này, hàm 7 thông qua đối số 9:
và làm cho tham chiếu 9 Một đối tượng khác: Tuy nhiên, tham chiếu 5 vẫn đề cập đến đối tượng gốc có thuộc tính 7 thay đổi thành square() 6. Nói cách khác, hàm 8 không thay đổi tham chiếu 5. Nếu khái niệm này vẫn làm bạn bối rối, bạn có thể coi các đối số chức năng là các biến cục bộ. Bản tóm tắt
Hướng dẫn này có hữu ích không? Truyền qua giá trị là gì?Khi bạn sử dụng từng giá trị, trình biên dịch sẽ sao chép giá trị của đối số trong hàm gọi thành tham số không phải con trỏ hoặc không tham chiếu tương ứng trong định nghĩa hàm được gọi. Tham số trong hàm được gọi được khởi tạo với giá trị của đối số được truyền.the compiler copies the value of an argument in a calling function to a corresponding non-pointer or non-reference parameter in the called function definition. The parameter in the called function is initialized with the value of the passed argument.
JavaScript có truyền đối tượng theo giá trị không?JavaScript luôn vượt qua giá trị để thay đổi giá trị của biến không bao giờ thay đổi nguyên thủy cơ bản (chuỗi hoặc số).Tuy nhiên, khi một biến đề cập đến một đối tượng bao gồm mảng, giá trị là tham chiếu đến đối tượng. so changing the value of the variable never changes the underlying primitive (String or number). However, when a variable refers to an object which includes array, the value is the reference to the object.
Ví dụ vượt qua giá trị với ví dụ là gì?"Chuyển bằng giá trị" có nghĩa là bạn chuyển giá trị thực của biến vào hàm.Vì vậy, trong ví dụ của bạn, nó sẽ vượt qua giá trị 9. "Truyền bằng tham chiếu" có nghĩa là bạn chuyển biến chính vào hàm (không chỉ là giá trị).Vì vậy, trong ví dụ của bạn, nó sẽ vượt qua một đối tượng số nguyên với giá trị 9.you pass the actual value of the variable into the function. So, in your example, it would pass the value 9. "Passing by reference" means that you pass the variable itself into the function (not just the value). So, in your example, it would pass an integer object with the value of 9.
Sự khác biệt giữa truyền qua giá trị và thông 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ớ. |