引用型別的值(物件)是引用型別的乙個例項。在ecmascript中,引用型別是一種資料結構,用於將資料和功能組織在一起
建立 object 例項的方式有兩種。
①使用 new 操作符後跟 object 建構函式,如下所示:
var person =
newobject()
; person.name =
"nicholas"
; person.age =
29;
②使用物件字面量表示法。物件字面量是物件定義的一種簡寫形式,目的在於簡化建立包含大量屬性的物件的過程。下面這個例子就使用了物件字面量語法定義了與前面那個例子中相同的person 物件:
var person =
;
注意:在通過物件字面量定義物件時,實際上不會呼叫 object 建構函式(firefox 2 及更早版本會呼叫 object 建構函式;但 firefox 3 之後就不會了)
雖然可以使用前面介紹的任何一種方法來定義物件,但開發人員更青睞物件字面量語法,因為這種語法要求的**量少,而且能夠給人封裝資料的感覺。實際上,物件字面量也是向函式傳遞大量可選引數的首選方式,例如:
function
displayinfo
(args)if(
typeof args.age ==
"number"
)alert
(output);}
displayinfo()
;displayinfo()
;
在這個例子中,函式 displayinfo()接受乙個名為 args 的引數。這個引數可能帶有乙個名為 name或 age 的屬性,也可能這兩個屬性都有或者都沒有。在這個函式內部,我們通過 typeof 操作符來檢測每個屬性是否存在,然後再基於相應的屬性來構建一條要顯示的訊息。然後,我們呼叫了兩次這個函式,每次都使用乙個物件字面量來指定不同的資料。這兩次呼叫傳遞的引數雖然不同,但函式都能正常執行
訪問物件的屬性時有點表示法或者方括號語法
alert
(person[
"name"])
;//"nicholas" 方括號語法
alert
(person.name)
;//"nicholas" 點表示法
從功能上看,這兩種訪問物件屬性的方法沒有任何區別。但方括號語法的主要優點是可以通過變數來訪問屬性,例如:
var propertyname =
"name"
;alert
(person[propertyname]);
//"nicholas"
如果屬性名中包含會導致語法錯誤的字元,或者屬性名使用的是關鍵字或保留字,也可以使用方括號表示法。例如:
person[
"first name"]=
"nicholas"
;
由於"first name"中包含乙個空格,所以不能使用點表示法來訪問它。然而,屬性名中是可以包含非字母非數字的,這時候就可以使用方括號表示法來訪問它們。
通常,除非必須使用變數來訪問屬性,否則我們建議使用點表示法。
JS基礎 引用型別
引用型別 1.建立object 例項的方式有兩種。第一種是使用 new操作符後跟 object 建構函式,如下所示 var person new object person.name nicholas person.age 29 另一種是使用物件字面量表示法。物件字面量是物件定義的一種簡寫形式,目的...
JS的基礎型別與引用型別
兩種型別 1.ecmascript 變數包含兩種不同型別的值 基本型別值 引用型別值 2.基本型別值 指的是儲存在棧記憶體中的簡單資料段 3.引用型別值 指的是那些儲存在堆記憶體中的物件,意思是,變數中儲存的實際上只是乙個指標,這個指標執行記憶體中的另乙個位置,由該位置儲存物件 兩種訪問方式 4.基...
JS的基礎型別與引用型別
js兩種型別 1.ecmascript 變數包含兩種不同型別的值 基本型別值 引用型別值 2.基本型別值 指的是儲存在棧記憶體中的簡單資料段 3.引用型別值 指的是那些儲存在堆記憶體中的物件,意思是,變數中儲存的實際上只是乙個指標,這個指標執行記憶體中的另乙個位置,由該位置儲存物件 兩種訪問方式 4...