引用類(lèi)型表示JavaScript中的對(duì)象。
引用值是引用類(lèi)型的實(shí)例。
Javascript中的對(duì)象是無(wú)序的屬性列表,由字符串類(lèi)型中的名稱(chēng)和值組成。
當(dāng)一個(gè)屬性的值是一個(gè)函數(shù)時(shí),它被稱(chēng)為一個(gè)方法。
函數(shù)本身實(shí)際上是JavaScript中的引用值。
可以執(zhí)行函數(shù)屬性。
我們可以將JavaScript對(duì)象看作哈希表。
我們可以使用 new
運(yùn)算符和構(gòu)造函數(shù)來(lái)創(chuàng)建一個(gè)對(duì)象。
任何Javascript函數(shù)都可以是對(duì)象的構(gòu)造函數(shù)。 語(yǔ)法為創(chuàng)建contructor與創(chuàng)建函數(shù)的語(yǔ)法相同。
以下代碼創(chuàng)建一個(gè)通用對(duì)象,并在 myObject
中存儲(chǔ)對(duì)它的引用:
var myObject = new Object();
console.log(typeof myObject);
上面的代碼生成以下結(jié)果。
引用類(lèi)型變量保存一個(gè)指針 對(duì)象的內(nèi)存中的位置。
原始類(lèi)型值直接存儲(chǔ)在變量中。
當(dāng)將對(duì)象分配給變量時(shí),將分配指針。
當(dāng)將一個(gè)變量分配給另一個(gè)變量用于引用類(lèi)型時(shí),每個(gè)變量 獲取指針的副本,并且它們引用同一對(duì)象記憶。
例如:
var object1 = new Object();
var object2 = object1;
然后,我們定義了另一個(gè)變量 object2
其被分配 object1
的值。
object1和object2變量都指向同一個(gè)對(duì)象。
例如:
var object1 = new Object();
var object2 = object1;
object1.myValue = "CSS";
console.log(object2.myValue);
上面的代碼生成以下結(jié)果。
myValue
被添加到值為“CSS"的 object1
。
該屬性在 object2
上是可訪(fǎng)問(wèn)的,因?yàn)?code> object1 和 object2
指向同一個(gè)對(duì)象。
我們可以在JavaScript中修改對(duì)象。
我們可以在JavaScript中修改對(duì)象。
點(diǎn)符號(hào)是在JavaScript中訪(fǎng)問(wèn)屬性的最常用方法。
我們可以通過(guò)使用帶有字符串的括號(hào)符號(hào)來(lái)訪(fǎng)問(wèn)JavaScript對(duì)象的屬性。
例如,你可以寫(xiě)這個(gè)代碼,它使用點(diǎn)符號(hào):
var array = [];
array.push(1);
console.log(array);
上面的代碼生成以下結(jié)果。
使用括號(hào)符號(hào),方法的名稱(chēng)包含在a中用方括號(hào)括起來(lái)的字符串,如下例所示:
var array = [];
array["push"](1);
console.log(array);
上面的代碼生成以下結(jié)果。
當(dāng)動(dòng)態(tài)引用屬性訪(fǎng)問(wèn)時(shí),上述語(yǔ)法很有用。
以下代碼使用括號(hào)符號(hào)引用a變量而不是字符串文字來(lái)指定要訪(fǎng)問(wèn)的屬性。
var array = [];
var method = "push";
array[method](1);
console.log(array);
在上面的代碼中,變量方法具有值“push",因此在數(shù)組上調(diào)用push()。
括號(hào)符號(hào)可以在屬性名稱(chēng)中使用特殊字符。
更多建議: