js 值传递与引用传递
值传递
基本类型赋值:
let a = 1;
let b = a;console.log(a); // 输出 1b = 3;console.log(a, b); // 输出 1 3
对象类型赋值:
let c = {a: 1, b: 2, c: {d: 3}};
let d = c;console.log(d); // 输出 {a: 1, b: 2, c: {d: 3}} 的值d = { a: 2, b: 2, c: { d: 3 } };console.log(c, d, c === d); // 输出 {a: 1, b: 2, c: {d: 3}} {a: 2, b: 2, c: {d: 3}} false
以上都是js传递都是值传递,对传递的变量b,d从新赋值不会影响到a,c原来的值。
引用传递
// a.js
export let a = 1;a ++;// b.js
import {a as b} from 'a.js'
在a.js文件里面修改了a会影响到b的值。因为他们共享内存地址。