javascript引用型別資料使用程式碼例項

admin發表於2017-04-12

對於引用型別的理解可能是初學者的一個難題,在本站已經不少關於引用引用型別的介紹的文章。

這裡就不多介紹理論,下面來分析一個比較典型的程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
function setName(obj) {
  obj.webName = "螞蟻部落";
  obj = new Object();
  obj.webName = "antzone"
}
var web = new Object();
setName(web)
console.log(web.webName )

上面的程式碼,可能很多人認為輸出值是"antzone",然而事實卻並非如此。

首先var web = new Object()建立的是一個物件,變數web中儲存的是物件的指標(也就是物件的在堆中的地址)。

所以呼叫setName(web)方法的時候,傳遞的對物件的一個地址。

obj.webName = "螞蟻部落",將物件的webName屬性值設定為"螞蟻部落"。

obj = new Object(),這個理解是關鍵,它的作用是將新建立物件的引用地址賦值給變數obj,也就是說obj已經不再引用原來的物件了,而是引用現在新建立的物件。所以obj.webName = "antzone"改變的是新物件,原來的物件並沒有被改變。

相關閱讀:

(1).引用型別和值型別可以參閱javascript引用型別和基本型別詳解一章節。


相關文章