引用類的值(對象)是引用類型的一個實例。在ECMAScript中,引用類型是一種數據結構,用於將數據和功能組織在一塊兒。數據結構
對象是某個特定引用類型的實例。新對象是使用new操做符後跟一個構造函數來建立的。構造函數自己就是一個函數,只不過該函數是出於建立新對象的目的而定義的。函數
var person=new Object();
這行代碼建立了Object
引用類型的一個新實例,而後把該實例保存在了變量person
中。使用的構造函數是Object
,它只爲新對象定義了默認的屬性和方法。ECMAScript提供了不少原生引用類型。spa
建立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"