码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-10-19 15:36:04      阅读:231      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!