函数传参

252 阅读1分钟

1.创建新地址

var a = [1];
var b = a;       //此处a,b指向共一个地址 
b = [10]         // 见到{} [] 就意味着创建了一个新的地址 相当于又重新 New Array()  function(){}
console.info(a);   //[1]
console.info(b)    //[10]

2.一个地址改内容

var a = [1];
var b = a;  // 此时a,b指向同一个地址
b[1] = 10   // 给b增加新的元素
console.info(a)  // [1,10]
console.info(b)  // [1,10]

3.函数传参

var a = [1];
function f(a){   
  a = [10]
}
f(a);
console.info(a)

 //这个题做的时候可以把形参换一下
 
 var a = [1];
 function f(b) {
     b = [10]
 }
 f(b);
 console.info(a)  //  [1]
 
 //此时答案就出来了
 

4.函数传参 和上个题一样

var a = 1;

function f(a){
  a = 10
}
f(a);

console.info(a)  // 1

5.把全局变量的a赋值给局部变量的a 同一地址赋值

var a = [1];

function f(a){
  a[1] = 10
}
f(a);

console.info(a)  //[1,10]

6.实参与形参

var a = [1];

function f(a){ 
  a[1] = 10  
  a = 3;
}

f(a);
console.info(a)

相当于

var a = [1];

function f(b) {
   a[1] = 10
   console.log(a)  //[1,10]
   b = 3;   
   console.log(b)  // 3
}
f(a);
console.info(a)   //[1,10]