今天在写js的时候发现一个问题:
当我在一个函数中直接调用一个全局变量,并对他进行修改的时候,修改的结果在全局生效,代码:
$(function(){
var change = 0;
alert(change);//0
function go (){
change+=10;
alert(change);
}
alert(change);//0
go(change);//10
alert(change);//10
})
而当我把变量作为参数传递给函数时,实际上在函数外面却没有生效,代码:
$(function(){
var change = 0;
alert(change);
function go (change){
change+=10;
alert(change);
}
go(change);
alert(change);
})
该怎么解释,我是小白。。。
javascript的函数传参的形式是
值传递
和引用传递
。引用类型的数据是引用传递,其他类型的数据都是值传递。
你这传进去的是个数字,那当然是值传递,传进去的参数和外面的参数不是同一个。