var ages=[21,22,23,24,25,26];
function addAge(aa){
aa++
}
console.log("原来的年龄:"+ages[1]);
addAge(ages[1]);
console.log("现在的年龄:"+ages[1]);
上面的代码中,第二次打印出来的ages[1]和第一次是一样的,因为执行addAge时传入的参数只是一个值22,形参aa获得这个值,然后++,aa变成23,函数执行完后aa被释放,里面的值就没有了,与数组数组里面的内容没有任何关系。
换用下面的代码:
function addAge(aa){
aa[1]++
}
console.log("原来的年龄:"+ages[1]);
addAge(ages);
console.log("现在的年龄:"+ages[1]);
第一次打印出来是22,第二次打印出来是23;由于执行函数时穿入的参数是ages,本质上是一个指向数组的地址,形参获得这个地址后也指向了同一个数组,所以aa[1]和ages[1]是同一个东西,对aa进行操作就相当于操作了这个数组。
浙公网安备 33010602011771号