1.传值(基本类型)
赋值操作的右边是基本类型时, 做的是一个值拷贝, 此时内存中有两个数据, 赋值完后, 左边和右边变量的地址指向不一样
let programModel = [
{lastProgramNum:2,lastAudioNum:[3,3]},
{lastProgramNum:0,lastAudioNum:[]},
{lastProgramNum:0,lastAudioNum:[]}
];
function ace() {
let a = programModel[1].lastProgramNum;
a = 10;
}
console.log(programModel);
输出, 可以看到, 这个2并没有发生改变
[ { lastProgramNum: 2, lastAudioNum: [ 3, 3 ] },
{ lastProgramNum: 0, lastAudioNum: [] },
{ lastProgramNum: 0, lastAudioNum: [] } ]
2.传址(对象)
赋值操作的右边是一个对象时, 传递的是一个地址值, 此时的a 和 programModel[0].lastAudioNum 指向的是同一个地址, 指向内存中的同一个数据
let programModel = [
{lastProgramNum:2,lastAudioNum:[3,3]},
{lastProgramNum:0,lastAudioNum:[]},
{lastProgramNum:0,lastAudioNum:[]}
];
function ace() {
let a = programModel[0].lastAudioNum;
a[1] = 10;
}
ace();
console.log(programModel);
输出, 可以看到改成了10
[ { lastProgramNum: 2, lastAudioNum: [ 3, 10 ] },
{ lastProgramNum: 0, lastAudioNum: [] },
{ lastProgramNum: 0, lastAudioNum: [] } ]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。