欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 函数参数的定义以及参数传值传址的区别

函数参数的定义以及参数传值传址的区别

2025/9/22 7:56:44 来源:https://blog.csdn.net/qq_33039355/article/details/140993387  浏览:    关键词:函数参数的定义以及参数传值传址的区别

1、函数内直接调用全局变量

var a = 1;
function test(){a = 100;  // 函数内直接调用全局变量console.log(a)
}

我们运行函数,然后再回头来看全局变量的值

test() // 100
a // 100

比较简单,函数内,因为没有var a,所以此处的a是全局变量的重新赋值,最终全局变量a被重新赋值为100了

2、函数通过参数的形式(传值)将全局变量引入函数内

var a = 1;
function test(a){a = 100;console.log(a)
}

现在,我们给函数一个形参,然后调用的时候将全局变量a以实参传入函数内,我们再次执行函数

test(a) // 100
a // 1

我们发现,当以参数的形式传入a的时候,函数体内不在是对全局变量的修改了,因为当我们给函数传参的时候,相当于定义了一个新的变量a,函数体内a成为了一个新的变量

3、函数通过参数的形式(传址)将全局变量引入函数内

var obj = {num: 0}
function test(obj){obj.num++;console.log(obj)
}

我们将对象obj以参数形式传入函数内部,再次执行函数,我们看一下

test(obj) // {num: 1}
obj // {num: 1}

全局的obj也同时发生了改变,虽然我们也是通过参数形式,相当于函数体内有一个var obj,但是注意,这里传入的参数为对象形式,是引用类型,传址,会指向和全局变量obj同样的值,所以会同时改变全局变量的值

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词