星空网 > 软件开发 > Java

js中函数参数值传递和引用传递

js中函数参数值传递和引用传递:
在阅读本章节之前建议参阅一下两章节:
1.值类型可以参阅javascript的值类型一章节。
2.引用类型可以参阅javascript的引用类型一章节。
一.函数传递值类型:
代码实例如下:

 

function addNum(num){  num+=10;  return num; } var num=10; var result=addNum(num); console.log(num);console.log(result);

 

以上代码的弹出值分别为:10和20,下面进行一下分析:
声明变量num并复制为10,这个是num是一个值类型,当为函数传递参数的时候,是将此值复制一份传递给函数,所以在函数执行之后,num本身的值并没有被改变,函数中被改变的值仅仅是一个副本而已。
二.函数传递引用类型:

 

function setName(obj){  obj.name="青岛新锐"; } var web=new Object(); web.name="蚂蚁部落";setName(web); console.log(web.name);

 

以上代码的弹出值是:“青岛新锐”,下面进行一下分析:
声明一个对象web,它是一个引用类型,当为函数传递参数的时候,是传递的web对象的引用,也就是此对象的内存地址,所以在函数中修改属性的对象就是函数外面创建的对象本身。
三.加深理解:

 

function setName(obj){  obj.name="青岛新锐";  obj=new Object();  obj.name="蚂蚁部落"; } var web=new Object(); setName(web); console.log(web.name);

 

以上代码的弹出值是:青岛新锐,很多人可能会以为将会弹出“蚂蚁部落”,下面进行一下简单的分析:
在函数外面创建一个对象,并将对象的引用赋值给变量web,web中存储的是对象在内存中的存储地址,当为函数传递参数的,就是传递的在函数外面创建的对象的地址。在函数中,为外面创建的对象创建一个自定义属性name并赋值为“青岛新锐”,然后又创建一个新的对象,并将新对象的地址赋值给obj,这个时候obj指向的并不是函数外面创建的对象,所以外面对象name属性不会被改变。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9052

更多内容可以参阅:http://www.softwhy.com/javascript/

 




原标题:js中函数参数值传递和引用传递

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

出口陆运越南流程:https://www.goluckyvip.com/tag/106111.html
出口越南走陆运:https://www.goluckyvip.com/tag/106112.html
陆运至越南:https://www.goluckyvip.com/tag/106113.html
至越南陆运:https://www.goluckyvip.com/tag/106114.html
出口越南陆运:https://www.goluckyvip.com/tag/106115.html
越南陆运出口:https://www.goluckyvip.com/tag/106116.html
83万单,Halara的TikTok美国小店爆单思路拆解:https://www.goluckyvip.com/news/186217.html
携程高铁旅游攻略,更优惠的高铁票价都在哪里:https://www.vstour.cn/a/362188.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流