//解釋下面代碼輸出什么?為什么? 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,為'張三'