淺析JavaScript訪問對(duì)象屬性和方法及區(qū)別
屬性是一個(gè)變量,用來表示一個(gè)對(duì)象的特征,如顏色、大小、重量等;方法是一個(gè)函數(shù),用來表示對(duì)象的操作,如奔跑、呼吸、跳躍等。
在JavaScript中通常使用”."運(yùn)算符來存取對(duì)象的屬性的值?;蛘呤褂肹]作為一個(gè)關(guān)聯(lián)數(shù)組來存取對(duì)象的屬性。
對(duì)象的屬性和方法統(tǒng)稱為對(duì)象的成員。
訪問對(duì)象的屬性
在JavaScript中,可以使用“ . ”和“ [ ] ”來訪問對(duì)象的屬性。
1. 使用“ . ”來訪問對(duì)象屬性
語法:
objectName.propertyName
其中,objectName 為對(duì)象名稱,propertyName為屬性名稱。
2. 使用“ [ ] ”來訪問對(duì)象屬性
語法:
objectName[propertyName]
其中,objectName 為對(duì)象名稱,propertyName為屬性名稱。
訪問對(duì)象的方法
在JavaScript中,只能使用“ . ”來訪問對(duì)象的方法。
語法:
objectName.methodName()
其中,objectName 為對(duì)象名稱,methodName() 為函數(shù)名稱。
【例5-1】創(chuàng)建一個(gè)Person類:
function Person() { this.name=" 張三 "; // 定義一個(gè)屬性 name this.sex=" 男 "; // 定義一個(gè)屬性 sex this.age=22; // 定義一個(gè)屬性 age this.say=function(){ // 定義一個(gè)方法 say() return "嗨!大家好,我的名字是 " + this.name + " ,性別是 " + this.sex + ",今年 " + this.age +"歲!"; } } var zhangsan=new Person(); alert("姓名:"+zhangsan.name); // 使用“.”來訪問對(duì)象屬性 alert("性別:"+zhangsan.sex); alert("年齡:"+zhangsan["age"]); // 使用“[ ]”來訪問對(duì)象屬性 alert(zhangsan.say); // 使用“.”來訪問對(duì)象方法
PS:淺析對(duì)象訪問屬性的"."和"[]"方法區(qū)別
在JavaScript中通常使用”."運(yùn)算符來存取對(duì)象的屬性的值?;蛘呤褂肹]作為一個(gè)關(guān)聯(lián)數(shù)組來存取對(duì)象的屬性。但是這兩種方式有什么區(qū)別了?
例如,讀取object中的property屬性值:
object.property
object['property']
以上兩種方式都可以實(shí)現(xiàn)屬性的存取。
1.語法方面的區(qū)別
點(diǎn)表示法的對(duì)象的屬性名是標(biāo)識(shí)符,而后者的屬性名則是一個(gè)字符串。
2.靈活性方面的區(qū)別
在JavaScript編寫程序中,可以為對(duì)象創(chuàng)建任意數(shù)目的屬性。但使用”.“運(yùn)算符來存取一個(gè)對(duì)象的屬性時(shí),屬性名是用標(biāo)識(shí)符表示的。而在JavaScript程序中,標(biāo)識(shí)符必須被逐字地輸入,它們不是一種數(shù)據(jù)類型,因此程序不能對(duì)其操作。也就是說,標(biāo)識(shí)符是靜態(tài)的,在程序中必須對(duì)其進(jìn)行硬編碼。
而使用數(shù)組[]表示法來存取一個(gè)對(duì)象的屬性時(shí),屬性名是用字符串表示的。字符串是JavaScript的一種數(shù)據(jù)類型,因此可以在程序運(yùn)行中操作并創(chuàng)建它們。
3.性能方面區(qū)別
數(shù)組[]表示法在存取屬性值時(shí)會(huì)進(jìn)行表達(dá)式運(yùn)行。而點(diǎn)表示法是直接存取屬性值,理論上執(zhí)行效率會(huì)比數(shù)組表示法高。性能方面其實(shí)可以忽略。
某些場(chǎng)景必須用到數(shù)組表示法來動(dòng)態(tài)存取屬性值,這個(gè)是點(diǎn)表示法無法做到的。
總的來說,這兩種方法區(qū)別上不大,都有對(duì)應(yīng)的使用場(chǎng)景。點(diǎn)表示法一般作為靜態(tài)對(duì)象使用時(shí)來存取屬性。而數(shù)組表示法在動(dòng)態(tài)存取屬性時(shí)就非常有用。
相關(guān)文章
JS 在數(shù)組指定位置插入/刪除數(shù)據(jù)的方法
下面小編就為大家?guī)硪黄狫S 在數(shù)組指定位置插入/刪除數(shù)據(jù)的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01JavaScript獲取當(dāng)前窗口內(nèi)的寬度和高度匯總
這篇文章主要介紹了JavaScript獲取當(dāng)前窗口內(nèi)的寬度和高度匯總的相關(guān)資料,需要的朋友可以參考下2023-02-02起點(diǎn)頁面?zhèn)髦礿s,有空研究學(xué)習(xí)下
起點(diǎn)上的頁面?zhèn)髦礿s,有空研究下2010-01-01js接收并轉(zhuǎn)化Java中的數(shù)組對(duì)象的方法
下面小編就為大家?guī)硪黄猨s接收并轉(zhuǎn)化Java中的數(shù)組對(duì)象的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08JS簡(jiǎn)單實(shí)現(xiàn)滑動(dòng)加載數(shù)據(jù)的方法示例
這篇文章主要介紹了JS簡(jiǎn)單實(shí)現(xiàn)滑動(dòng)加載數(shù)據(jù)的方法,涉及javascript事件響應(yīng)及頁面元素屬性動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下2017-10-10javascript實(shí)現(xiàn)簡(jiǎn)單倒計(jì)時(shí)效果
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)倒計(jì)時(shí)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09js數(shù)組常用操作方法小結(jié)(增加,刪除,合并,分割等)
這篇文章主要介紹了js數(shù)組常用操作方法,結(jié)合實(shí)例總結(jié)了javascript數(shù)組的增加、刪除、合并、分割等操作技巧,需要的朋友可以參考下2016-08-08JavaScript 阻止超鏈接跳轉(zhuǎn)的操作方法(多種寫法)
很多朋友問小編能否通過JavaScript來阻止超鏈接的跳轉(zhuǎn)呢,今天給大家通過多種寫法來實(shí)現(xiàn)這一功能,具體實(shí)例代碼跟隨小編一起看看吧2021-06-06