簡單介紹JavaScript參數傳遞
- 2. 傳值參考(call by value)
◦ 複製內容到新的參照上。
傳址參考(call by reference)
◦ 引用參考到新的參照上,修改或賦予新值都會改變原有參
照。
共享參考(call by sharing)
◦ 複製參考到新的參照上,修改會改變原有參照,但賦予新
值則會產生新的參考。
- 3. 傳值參考(call by value)
◦ 複製內容到新的參照上。
傳址參考(call by reference)
◦ 引用參考到新的參照上,修改或賦予新值都會改變原有參
照。
共享參考(call by sharing)
◦ 複製參考到新的參照上,修改會改變原有參照,但賦予新
值則會產生新的參考。
- 6. var aaa = “string”; RAM
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
aaa
“string”
AddressVariable
0x01
- 7. var aaa = “string”;
function run(xyz) {
xyz=“world”;
}
RAM
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
Address
run
function run…
Variable
aaa
“string”
0x01
0x03
- 8. var aaa = “string”;
function run(xyz) {
xyz=“world”;
}
run(aaa);
RAM
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
Address
xyz
Variable
run
function run…
aaa
“string”
0x01
0x03
0x01
- 9. var aaa = “string”;
function run(xyz) {
xyz=“world”;
}
run(aaa);
RAM
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
AddressVariable
xyz
run
function run…
aaa
“string”
0x01
0x03
0x06
“world”
- 10. var aaa = “string”;
function run(xyz) {
xyz=“world”;
}
run(aaa);
console.log(aaa);
RAM
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
AddressVariable
xyz
run
function run…
aaa
“string”
0x01
0x03
0x06
“world”
- 12. var aaa = {name:”john”}; RAM
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
aaa
{name:“john”}
AddressVariable
0x01
- 13. var aaa = {name:”john”};
function run(xyz) {
xyz.name=“mark”;
}
RAM
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
Address
run
function run…
Variable
aaa
{name:“john”}
0x01
0x03
- 14. var aaa = {name:”john”};
function run(xyz) {
xyz.name=“mark”;
}
run(aaa);
RAM
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
AddressVariable
run
function run…
aaa
{name:“john”}
0x01
0x03
xyz 0x01
- 15. var aaa = {name:”john”};
function run(xyz) {
xyz.name=“mark”;
}
run(aaa);
RAM
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
AddressVariable
run
function run…
aaa
{name:“mark”}
0x01
0x03
xyz 0x01
- 16. var aaa = {name:”john”};
function run(xyz) {
xyz.name=“mark”;
}
run(aaa);
console.log(aaa);
RAM
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
AddressVariable
run
function run…
aaa
{name:“mark”}
0x01
0x03
xyz 0x01