JavaScript中的参数传递方式

来源:互联网 发布:彩票免费计划软件 编辑:程序博客网 时间:2024/06/06 02:45

对于JavaScript中的基本类型来说,对于以下代码可以看出是属于按值传递

function add(a,b){            return a+b;        }        var a=1,b=2;        document.write(add(a,b));

那么再让我们来看下面这段代码

function fun(obj){            obj.name="gg";                    }        var pro=new Object();        pro.name="Pigpigever";        fun(pro);        document.write(pro.name);//这里pro.name的值为"gg"

此时说明一个问题。形式参数obj能够对对象pro的属性进行改动,那么它到底属不属于引用传递呢??

接下来看下面这段代码:

function fun(obj){            obj.name="gg";            obj=new Object();            obj.name="sss";        }        var pro=new Object();        pro.name="Pigpigever";        fun(pro);        document.write(pro.name);//这里pro.name的值还是为"gg"
可以看得出来,当我们重新为obj对象申请一段内存空间的时候,pro并没有因为obj的重新指向而改变指向的内存地址,所以这里向函数传递的是对象的地址的值,是值传递,而不是引用传递。


欢迎指正~~~

1 0
原创粉丝点击