js 函数 值传递 引用传递

#### 值传递

 

- 复制变量值

- 两个变量相互独立

```

let a = "0"

fn(a)

fn(v){

v = "1"//v 与 a 相互独立
}

#### 引用传递

- 复制引用(指针)

- 之后的任何一方改变都会映射到另一方。

- 指针指向Object(数组,new Object...)

```

let obj = new Object

obj.name = "111"

fn(obj)

fn(o){//将obj这个变量名(指针)传入 复制obj给o,o与obj指向同一个地址(Object对象在堆中,o、 obj在栈中)

o.name = "222"

o = new Object()//将o重新指向一个对象,此时o与obj独立不相干

o.name = "333"

}

console.log(o.name)//222

```

 

posted @ 2022-03-12 13:23  w0000  阅读(199)  评论(0编辑  收藏  举报