摘要:類型關(guān)于引用類型的概念引用類型引用類型的值對(duì)象是引用類型的一個(gè)實(shí)例對(duì)象是某個(gè)特定引用類型的實(shí)例新對(duì)象用操作符后跟一個(gè)構(gòu)造函數(shù)來創(chuàng)建的如代碼這行代碼創(chuàng)建了引用類型的一個(gè)新實(shí)例,然后把該實(shí)例保存在了變量中。使用的構(gòu)造函數(shù)是。
Object 類型 關(guān)于引用類型的概念:
引用類型:引用類型的值(對(duì)象)是引用類型的一個(gè)實(shí)例;
對(duì)象:是某個(gè)特定引用類型的實(shí)例;
新對(duì)象:用new 操作符后跟一個(gè)構(gòu)造函數(shù)來創(chuàng)建的;如代碼:var person = new Object();這行代碼創(chuàng)建了Object 引用類型的一個(gè)新實(shí)例,然后把該實(shí)例保存在了變量person 中。使用的構(gòu)造函數(shù)是Object()。
創(chuàng)建Object 類型實(shí)例的方法使用new 操作符后跟Object 構(gòu)造函數(shù);
使用對(duì)象自變量表示法;
對(duì)于第一種,Object 實(shí)例的創(chuàng)建方式如下:
var child = new Object(); child.name = "Oliver"; child.age = 18; console.log(child.name); //"Oliver"
對(duì)于第二種,Object 實(shí)例的創(chuàng)建方式如下:
var child = { name: "Oliver", age: 18 } console.log(child.age + " " + child.name); //"18 Oliver"
上面這個(gè)例子中,在age:18 之后不能添加逗號(hào),因?yàn)閍ge 是這個(gè)對(duì)象的最后一個(gè)屬性。(在最后一個(gè)屬性后面添加逗號(hào),會(huì)在IE7 及更早版本和Opera 中導(dǎo)致錯(cuò)誤。)
另外,在自變量表示法創(chuàng)建實(shí)例的中,屬性名也可以使用字符串,如:
var person = { "name" : "Nicholas", "age" : 29, 5 : "fdd" } console.log(person.name); //"Nicholas" console.log(person["5"]); //"fdd"
注意!這里如果要訪問person 里面的屬性名為5 的屬性的值,則需要使用方括號(hào)語法如:person[5],最好寫成person["5"]后面會(huì)介紹。
另外,這里的5 會(huì)被自動(dòng)轉(zhuǎn)換成字符串"5"。
在使用字面兩語法時(shí),如果留空其花括號(hào),則可以定義只包含默認(rèn)屬性和方法的對(duì)象,如:
var person = {}; person.name = "Oliver"; person.age = 18; person[5] = "fdd";
這里的var person = {} 跟new Object()相同。
對(duì)象字面兩也是向函數(shù)傳遞大量可選參數(shù)的首選方式,如:
function display(obj){ var output = ""; if (typeof obj["name"] == "string"){ output += "Name: " + obj["name"] + "
"; } if (typeof obj.age == "number"){ output += "Age: " + obj.age + "
"; } document.write(output); } display({ name:"Oliver", age:18 })
一般來說方括號(hào)語法是在必須使用變量來訪問屬性的時(shí)候才使用。如果這里一定要用方括號(hào)語法,那就必須寫成這樣的形式person["name"]與person.name相同。后面會(huì)詳述。
訪問對(duì)象的屬性一般來說主要有兩種方法:
點(diǎn)表示法;
方括號(hào)語法;
訪問對(duì)象屬性時(shí)一般都是使用點(diǎn)表示法。當(dāng)然也可以使用方括號(hào)表示法,如:
person.name; person["name"];
方括號(hào)語法的主要優(yōu)點(diǎn)是可以通過變量來訪問屬性,如:
var person = { name:"Oliver" } var propertyName = "name"; console.log(person[propertyName])
在對(duì)象里面,name屬性可以寫成字符串形式"name",如果用方括號(hào)語法,一定要注意寫成person["name"]
如果屬性名中包含會(huì)導(dǎo)致語法錯(cuò)誤的字符,或者屬性名使用的是關(guān)鍵字或保留字,也可以使用方括號(hào)表示法。如:
person["first name"] = "Oliver";
因?yàn)槿绻麑懗?b>person.first name 會(huì)報(bào)錯(cuò)。
一定要注意的是,除非必須使用變量來訪問屬性,否則建議使用點(diǎn)表示法。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/86180.html