Home >Web Front-end >JS Tutorial >How to use JS to pass by reference and pass by value

How to use JS to pass by reference and pass by value

php中世界最好的语言
php中世界最好的语言Original
2018-06-04 09:44:552525browse

This time I will show you how to use JS to transfer by reference and transfer by value. What are the precautions for using JS to transfer by reference and value? The following is a practical case. Let’s take a look. .

Here is a detailed explanation of JS value passing and reference passing and the difference between the two.

Let’s first explain the

basic concepts of these two.

In a function call, a numerical value is passed, which we call "value passing". In function calls, objects are passed, generally called "pass by reference".

Now generally speaking, the essential difference between the two is that the

data type passed is different. Value passing passes a value, while reference passing What is passed is an object.

Look at the code and the comments in the code.

1. Introduction

function func(a)
{
  a++;
}
// 因为函数都没有调用,所以找不到 a
console.log(a);
//结果明显是undefined了。
//所以看下面两个例子。

2. Value transfer

var a = 5;
function func(a)
{
  // 函数中开辟了一个空间 a == 5
  // a==6
  a++;
}
func(5);
// 结果,函数没有改变到 外部 a 的值,所以,结果是 5
console.log(a);
// 函数调用中,传递是一个数值,我们称为 “值传递”
// 特点: 有多个不同的空间,空间都是在栈中的
//    所以 修改函数中的空间,对外部空间是没有影响的

3. Pass by reference

var a = 5;
function func()
{
  // 开辟函数 的空间
  // 函数中没有 a 的空间
  // 所以,系统会自动向外面搜索
  // 这里是对外部的变量进行修改
  a++;
}
func(5);
// 因为函数中修改了外部的变量 a,所以,值发生改变了,是 6
console.log(a);
// 函数调用中,传递是对象,一般称为 “引用传递”
// 特点: 实在存数据的空间只有一份
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

How to use vue to hide divs by clicking on the blank space

How to use JS countdown recovery button Click function

The above is the detailed content of How to use JS to pass by reference and pass by value. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn