js參數傳遞一個Object,是按引用傳遞


//解釋下面代碼輸出什么?為什么?
var obj = {}; // 1、這里的外部obj變量存儲的地址,指向后面的{}這個對象,假設此處的這個對象空間叫地址1
aaa = {age:11}
function setName(obj) {//復雜數據類型  2、這里相當於var了一個obj,所以函數內部的obj是一個局部變量
obj.name = '張三'; // 4、這里的內部變量obj存儲的地址此時是外部傳遞進來的地址1,地址1存儲的對象的name是'張三'
obj = {}; // 5、此處后面的對象{}的存儲空間假設叫地址2,等於號將變量obj存儲的地址1改變成了地址2
obj.name = '李四'; // 6、地址2存儲的對象的name為'李四'
}
setName(obj); // 3、這里將外部obj的地址1傳遞了進來
console.log(obj.name); // 7、console.log()打印的是外部的obj變量,它的指向一直沒有發生改變,
// 它一直存儲的是地址1,所以打印出來的就是地址1的name,為'張三'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM