参数传递
所谓参数传递,就是将实参的值传递给形参。通过调试可以确定形参在函数被调用之前是不存在的,当函数被调用的那一刻,实参被创建,并且把实参的值传递给形参。
参数传递有两种方式:值传递和引用传递
/*传递值*/
var a = 5;
increase(a);
alert(a);
function increase(x){
x++;
}
a的值没有显示预期中的6,还是显示的5.因为形参x和实参a是两个不同的变量,x的变化和a没有任何关系。
/*引用传递*/
var a = new Object();//定义一个对象
a.value = 5;//a对象赋值为5
increase(a);
alert(a.value);
function increase(x){
x.value++;
}
a.value没有被显示修改,但是a.value确实是加1了,因为x就是a,或者说x是a的别名,专业一点就叫引用。
常规类型的参数采用的是值传递,比如Number、String、Boolean
对象类型采用的是引用传递,Object
如果希望把参数从函数中带出来,但是函数的返回值只有一个