JavaScript传值与传址问题
传值:
let a = 1;
let b = a;
console.log(a, b);
//结果是1 1
b = 3;
console.log(a, b);
//结果是1 3
//这里b的改变不会影响a的
传址:
let c = {name:"hello"};
let d = c;
console.log(c, d);
//这里结果显示:{name:"hello"} {name:"hello"}
c.name = "Hi";
console.log(c, d);
//这里结果显示:{name:"Hi"} {name:"Hi"}
//这里d的改变会影响c
总结: 基本量传值,对象传址
举例子说明:
背景:小明的老爸有一辆玩具车和一辆兰博基尼
传值: 小明和他老爸说,我也想有个玩具车,小明老爸说可以没问题,给你买一个!
传址: 小明和他老爸说,我想买个兰博基尼,小明老爸说这个太贵了呀,我把我的兰博基尼给你开吧,这是共用同一辆兰博基尼。
传值:就是两个结果相同,但是如果改变一方另一方不受丝毫影响。
传址:二者共用同一个地址,如果一方改变,另一方也会随着改变。
刚开始学JS,第一篇博客写着玩,莫怪。