引用類型之Object

引用類型

引用類的值(對象)是引用類型的一個實例。在ECMAScript中,引用類型是一種數據結構,用於將數據和功能組織在一塊兒。數據結構

對象是某個特定引用類型的實例。新對象是使用new操做符後跟一個構造函數來建立的。構造函數自己就是一個函數,只不過該函數是出於建立新對象的目的而定義的。函數

var person=new Object();

這行代碼建立了Object引用類型的一個新實例,而後把該實例保存在了變量person中。使用的構造函數是Object,它只爲新對象定義了默認的屬性和方法。ECMAScript提供了不少原生引用類型。spa

Object類型

建立Object實例的方式:code

第一種,使用new操做符後跟Object構造函數,以下對象

var person=new Object();
person.name="breeze";
person.age="20";

另外一種方式是使用對象字面量表示法。對象字面量是對象定義的一種簡寫形式ip

var person={
    name:"breeze",
    age:20
}

對象字面量是對象定義的一種簡寫形式,目的在於簡化建立包含大量屬性的對象的過程。字符串

在使用對象字面量語法時,屬性名也可使用字符串,以下string

var person={
    "name":"breeze",
    "age":20
}

這個例子建立了一個對象,包含兩個屬性:name和age,但這裏的數值屬性名會自動轉換成字符串,另外,使用對象字面量語法的時候,也能夠留花括號而後自定義屬性和方法,例如io

var person={};
person.name="breeze";
person.age=20;

注意點:對象字面量語法,更推薦在只考慮對象屬性名的可讀性時使用function

實例

雖然可使用前面任何一種方法來定義對象,可是對象字面量也是向函數傳遞大量參數的首選方式,例如

function dispalyInfo(args){
        var output="";
        if(typeof args.name == "string"){
            output += "name:"+args.name+'\n'
        }
        if(typeof args.age =="number"){
            output += "age:"+args.age+'\n'
        }
        alert(output)
    }

    dispalyInfo({
        name:"breeze",
        age:20
    })

	//name:breeze
	//age:20

在這個例子中,函數displayInfo( )接收一個名爲args的參數,這個參數可能帶有名爲name和age的屬性,也可能啥也沒有,在這個函數內部,咱們經過typeof操做符來檢測每一個屬性是否存在,而後基於相應的屬性來構建出要顯示的信息。咱們調用這個函數時,所使用的時對象字面量語法來指定不一樣的數據。

注:這種傳參模式最適合須要向函數傳入大量可選參數的情形。

對象屬性

通常來講,訪問對象屬性都是用的點表示法,不過也可使用方括號來訪問對象的屬性。在使用方括號語法時,應該將要訪問的屬性以字符串的形式放在方括號中,例子以下

alert(person.name)
alert(person["name"])

從功能上,兩種方法沒有區別,但方括號語法的主要優勢是能夠經過變量來訪問屬性,例如

var person={
    "name":"breeze",
    "age":20
}
var propertyName="name";
alert(person[propertyName]); //"breeze"
相關文章
相關標籤/搜索