87,995
社区成员
发帖
与我相关
我的任务
分享
<script>
function setName(obj){
obj.name="Nicholas";
obj=new Object();
obj.name="Greg";
}
var person=new Object();
setName(person);
alert(person.name); //Nicholas
</script>



[/quote]
妈蛋,我完蛋了原来他们没骗俺我智商真的有问题,好吧,现在不是说这个的时候,终于自认为看明白了,其实我也是刚学几天以下纯粹个人瞎猜观点就当看着玩吧,扯远点,函数参数只是实现数据的传递方式之一,既然我要传的是数据,那我管你传值还是传址,我找个家什一股脑儿盛着就是了,如果是值我拿来就用了如果是地址我再间接访问(如何区分是语言的事),当然传过来之后就不关外面的事了,(我理解的变量也只是容器,因此对你所说的变量传进去很不能理解,我觉得所有的所有都只是对数据进行处理,传的都是数据,或者叫做数值?,把ds指过去就当做数据啦~~~~),因此对于函数来说你传过来什么类型的数据我就拿相应的容器盛着就是了(用篮子盛水属于行为艺术==)(这个比喻很不贴切啊,大多时候只是复制,现实中可没有这好事),所以就会产生这样的结果:对于值,它俩是俩不同的变量,改了就改了,关外面的X事。对于引用,若改函数作用域变量的值自然不关外面啥事(对照为obj的重新赋值),可是若通过这引用改了外面那位“大哥”罩着的“地盘”,自然就有点特别了(大哥微信何在!哦不对,大哥威信何在!),,对照你前面说的“一切都是传值而已”的思想,应该很好理解吧,我去,感觉自己很啰嗦貌似还没说清楚……郁闷,肯定是理解不够深刻。好吧,但愿不是理解完全错误。