函数传参数(深度解析)
首先几个比较重要的概念
1.ECMAscript中所有函数的参数是按照值传递的,也就是外部的值复制给函数内部参数
- 基本类型的值传递就是复制一个副本进去
- 引用型也是复制进去,但是是复制引用类型的一个值的地址(引用类型的值是储存在堆内存中,js不允许直接访问内存中的位置,也就是不能直接操作对象的内存空间,在操作时候实际是操作对象的引用而不是实际的对象。因此,引用类型的值是按照引用访问的)
function setName(obj) { //obj = arguments[0] = person 此时传递进来一个值的地址(此时你交了一个女朋友) obj.name = "Nicholas"; //因为是引用类型,obj的值发生改变,person也改变(你给女朋友买了件阿玛尼的外套) obj = new Object(); //obj = arguments[0] = new Object() 此时传递进来一个值的地址!(你交了一个新女朋友) obj.name = "Greg";// 你给新女友买了件爱马仕的内裤 } var person = new Object(); setName(person); //你把前女友带进商场 alert(person.name)//提问你给前女友买的啥 简化后 
- 
function setName(女人) { 女人.购物 = "阿尼玛"; //前女友。购物 = “阿尼玛” 女人 = new Object(); //女人 = 新女友 女人.购物 = "爱马仕内裤";// 新女友.购物 = "爱马仕内裤" } var 前女友 = new Object(); setName(前女友); //你把前女友带进商场 alert(前女友.购物)//提问你给前女友买的啥 
    本人是一个技术爱好者
1.但是每个技术爱好者都是从萌新开始的
2.我所有的博文都是我各方资料查阅(看的比较乱比较杂,因为有些是群里讨论等等来源,无法辨别出处,所以我的文章都是没有写明出处,都是我个人消化后整理,)
3.但是没有经过我实践的我一般会标注
4.希望大家共同交流共同进步,指出我的不足 谢谢
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号