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: [] } ]