Hướng dẫn javascript pass by value - javascript vượt qua giá trị

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.: this tutorial explains how JavaScript pass-by-value works and gives you some examples of passing primitive and reference values to a function.

Nội dung chính ShowShow

  • JavaScript Pass-By-Value hoặc Pass-Ttef
  • Qua giá trị của các giá trị nguyên thủy
  • Qua giá trị của & nbsp; giá trị tham chiếu
  • Bản tóm tắt
  • JavaScript có vượt qua giá trị không?
  • JavaScript có đi qua tham chiếu không?
  • Bạn có thể vượt qua các đối tượng theo giá trị?
  • JavaScript có vượt qua bằng cách tham chiếu hoặc truyền qua ngôn ngữ giá trị không?

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-Ttef

Qua giá trị của các giá trị nguyên thủy

Qua giá trị của & nbsp; giá trị tham chiếu

Bản tóm tắt

Qua giá trị của các giá trị nguyên thủy

Qua giá trị của & nbsp; giá trị tham chiếu

function square(x) { x = x * x; return x; } let y = 10; let result = square(y); console.log(result); // 100 console.log(y); // 10 -- no change

Code language: JavaScript (javascript)

Bản tóm tắt

JavaScript có vượt qua giá trị không?

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8. The function assigns the square of

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 to the

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 argument.

JavaScript có đi qua tham chiếu không?

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 and initialize its value to

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5:

Hướng dẫn javascript pass by value - javascript vượt qua giá trị

Bạn có thể vượt qua các đối tượng theo giá trị?

JavaScript có vượt qua bằng cách tham chiếu hoặc truyền qua ngôn ngữ giá trị không?

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 variable. However, it does not impact the value of the

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 variable because

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 and

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 are separate variables.

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.

Trong 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.

Qua giá trị của & nbsp; giá trị tham chiếu

Bản tóm tắt

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)

JavaScript có vượt qua giá trị không?

JavaScript có đi qua tham chiếu không?

Bạn có thể vượt qua các đối tượng theo giá trị?

JavaScript có vượt qua bằng cách tham chiếu hoặc truyền qua ngôn ngữ giá trị không?

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.

Trong 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.

Hã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

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7 chấp nhận đối số

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8. Hàm gán bình phương của

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 cho đối số

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8.

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8. The function assigns the square of

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 to the

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 argument.

Tiếp theo, khai báo biến

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 và khởi tạo giá trị của nó thành

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5:

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 and initialize its value to

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5:

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5:

Sau đó, chuyển biến

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 & nbsp; vào hàm

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7. Khi chuyển biến ________ 8 & nbsp; cho hàm

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7, JavaScript sao chép ________ 8 & nbsp; giá trị cho biến

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8.

Sau đó, hàm

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7 thay đổi biến

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8. Tuy nhiên, nó không ảnh hưởng đến giá trị của biến

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 vì

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 và

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 là các biến riêng biệt.

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 variable. However, it does not impact the value of the

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 variable because

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
8 and

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 are separate variables.

Cuối cùng, & nbsp; giá trị của biến

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 không thay đổi sau khi hàm

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7 hoàn thành.

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)

Output:

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
9

Nếu JavaScript đã sử dụng & nbsp; từng tham chiếu, biến ________ 8 & nbsp; sẽ thay đổi thành

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
4 sau khi gọi hàm.

Nó 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

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
5 tham chiếu một đối tượng có hai thuộc tính

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
6 và

let person = { name: 'John', age: 25, }; function increaseAge(obj) { obj.age += 1; // reference another object obj = { name: 'Jane', age: 22 }; } increaseAge(person); console.log(person);

Code language: JavaScript (javascript)
7:

Tiếp theo, xác định hàm

Bản tóm tắt

  • JavaScript có vượt qua giá trị không?
  • JavaScript có đi qua tham chiếu không?

Bạn có thể vượt qua các đối tượng theo giá trị?

JavaScript luôn luôn qua giá trị. Điều này có nghĩa là mọi thứ trong JavaScript là một loại giá trị và các đối số chức năng luôn được truyền bởi giá trị.. This means everything in JavaScript is a value type and function arguments are always passed by value.. This means everything in JavaScript is a value type and function arguments are always passed by value.

Trong mảng JavaScript và đối tượng theo sau bởi thuộc tính tham chiếu.Trong tham chiếu vượt qua, các tham số được truyền dưới dạng một đối số không tạo ra 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.. In Pass by reference, parameters passed as an arguments does not create its own copy, it refers to the original value so changes made inside function affect the original value.. In Pass by reference, parameters passed as an arguments does not create its own copy, it refers to the original value so changes made inside function affect the original value.

Giá trị của đối tượng có thể thay đổi có thể được thay đổi khi nó được chuyển sang phương thức.Giá trị của một đối tượng bất biến không thể thay đổi, ngay cả khi nó được truyền một giá trị mới.Vượt qua giá trị của người Viking đề cập đến việc chuyển một bản sao của giá trị.Vượt qua bằng cách tham chiếu, đề cập đến việc truyền tham chiếu thực của biến trong bộ nhớ.“Passing by value” refers to passing a copy of the value. “Passing by reference” refers to passing the real reference of the variable in memory.“Passing by value” refers to passing a copy of the value. “Passing by reference” refers to passing the real reference of the variable in memory.

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.. 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.