淺析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í)可以忽略。
某些場景必須用到數(shù)組表示法來動(dòng)態(tài)存取屬性值,這個(gè)是點(diǎn)表示法無法做到的。
總的來說,這兩種方法區(qū)別上不大,都有對(duì)應(yīng)的使用場景。點(diǎn)表示法一般作為靜態(tài)對(duì)象使用時(shí)來存取屬性。而數(shù)組表示法在動(dòng)態(tài)存取屬性時(shí)就非常有用。
相關(guān)文章
JS實(shí)現(xiàn)點(diǎn)擊按鈕控制Div變寬、增高及調(diào)整背景色的方法
這篇文章主要介紹了JS實(shí)現(xiàn)點(diǎn)擊按鈕控制Div變寬、增高及調(diào)整背景色的方法,涉及javascript動(dòng)態(tài)操作頁面元素屬性的相關(guān)技巧,適用于動(dòng)態(tài)更換頁面皮膚的功能,需要的朋友可以參考下2015-08-08
使用JS監(jiān)聽鍵盤按下事件(keydown event)
這篇文章主要介紹了使用JS監(jiān)聽鍵盤按下事件(keydown event),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
微信小程序?qū)崿F(xiàn)錨點(diǎn)定位功能的方法實(shí)例
“錨點(diǎn)”功能在實(shí)際應(yīng)用設(shè)計(jì)的好,可以提高用戶體驗(yàn),這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)錨點(diǎn)定位功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-07-07
JavaScript設(shè)計(jì)模式適配器模式實(shí)例
這篇文章主要介紹了JavaScript設(shè)計(jì)模式適配器模式實(shí)例,適配器設(shè)計(jì)模式可以讓彼此不兼容的功能在一塊工作,有助于避免大規(guī)模的修改代碼,并且易于擴(kuò)展和兼容2022-06-06
詳解JavaScript對(duì)Date對(duì)象的操作問題(生成一個(gè)倒數(shù)7天的數(shù)組)
最近項(xiàng)目需求要生成一個(gè)倒數(shù)7天的數(shù)組,下面小編把我的實(shí)現(xiàn)思路和代碼整理分享給大家,供大家參考,需要的朋友可以參考下2015-10-10

