首页 > 其他 > 详细

当函数传入参数是引用类型的几种情况和现象。

时间:2015-10-19 15:33:39      阅读:207      评论:0      收藏:0      [点我收藏+]
 1         function hehe(o,oo){
 2             o = ‘xoxo‘
 3             oo.ins.name = ‘zhangmingzhi;‘
 4         }
 5         var obj = {
 6             ins:{
 7                 
 8             }
 9         }
10         hehe(obj.ins,obj);
11         console.log(obj);

情况1,传入参数为oo,为一个引用类型的时候,参数修改的值会体现在外部 即obj中。

情况2,传入参数为o,为一个引用类型,参数修改的值在外部obj.ins体现不出来

根据情况2的猜想:可能是obj在栈上的引用地址可能只是储存了obj 而ins则在堆上真实的地址上。如果把obj.ins作为参数传递进去的话,那么操作這个传入的值就是没有栈地址的值,自然在方法里修改的就体现不到外面的obj对象中了

PS:以上只是猜想,回去翻翻书。。 

当函数传入参数是引用类型的几种情况和现象。

原文:http://www.cnblogs.com/strangerqt/p/4891822.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!