js訪問物件屬性的2個方法
筆者在學習的過程中,瞭解到訪問物件的屬性,其實有兩種方式:
比如:一個物件 Obj = {"name": "whoami", "AGE": "20"}
1.用點訪問,Obj.Name ;
2.用中括號訪問,Obj["Name"];
上述兩種方式得到的結果都是屬性Name的值whoami;
兩者的區別:
1.語法方面的區別
點表示法的物件的屬性名是識別符號,而後者的屬性名則是一個字串。
2.靈活性方面的區別
在JavaScript編寫程式中,可以為物件建立任意數目的屬性。但使用”.“運算子來存取一個物件的屬性時,屬性名是用識別符號表示的。而在JavaScript程式中,識別符號必須被逐字地輸入,它們不是一種資料型別,因此程式不能對其操作。也就是說,識別符號是靜態的,在程式中必須對其進行硬編碼。
而使用陣列[]表示法來存取一個物件的屬性時,屬性名是用字串表示的。字串是JavaScript的一種資料型別,因此可以在程式執行中操作並建立它們。
3.效能方面區別
陣列[]表示法在存取屬性值時會進行表示式執行。而點表示法是直接存取屬性值,理論上執行效率會比陣列表示法高。效能方面其實可以忽略。
某些場景必須用到陣列表示法來動態存取屬性值,這個是點表示法無法做到的。
總的來說,這兩種方法區別上不大,都有對應的使用場景。點表示法一般作為靜態物件使用時來存取屬性。而陣列表示法在動態存取屬性時就非常有用。
- 在引用已有的物件屬性時,並有屬性名的情況下,用點和中括號是一樣的;若屬性是陣列或者是物件,沒有屬性名,則要用類似陣列元素引用的方式,用中括號+下標。例子參考;
- 在建立函式屬性的時候,若屬性名是已知的。用點和中括的的方式一樣。若屬性名是一組變數,則只能用中括號表示。中括號的靈活應用可以讓程式碼變的很強大。
相關文章
- JavaScript訪問物件的屬性和方法JavaScript物件
- 一、訪問物件屬性和方法的操作物件
- JavaScript物件的資料屬性與訪問器屬性JavaScript物件
- outerDocument訪問外部屬性方法
- 深入理解物件的資料屬性與訪問器屬性物件
- js物件屬性JS物件
- js 物件方法、類方法、原型方法的區別;私有屬性、公有屬性、公有靜態屬性的區別JS物件原型
- javascript 物件屬性的get set訪問器寫法JavaScript物件
- javascript訪問物件屬性方式簡單介紹JavaScript物件
- 教你如何直接訪問php例項物件的private屬性PHP物件
- 課時45:魔法方法:屬性訪問
- 物件導向2--靜態方法、類方法、屬性方法物件
- js的屬性物件的specified屬性用法簡單介紹JS物件
- 子類擁有父類物件所有的屬性和方法,但無法訪問物件
- python物件屬性管理(2):property管理屬性Python物件
- js如何獲取指定物件中含有屬性的個數JS物件
- css屬性與js中style物件的屬性對應表CSSJS物件
- 移出Json物件的三級屬性JSON物件
- Python中訪問私有屬性和私有方法Python
- c#屬性訪問器C#
- 理解物件以及物件的屬性、方法、事件 (轉)物件事件
- js判斷物件裡面是否有某個屬性JS物件
- jQuery事件物件event的屬性和方法jQuery事件物件
- Array String物件的方法和屬性物件
- 使用joinjs繪製流程圖(二)-Paper物件的屬性和方法JS流程圖物件
- JS遍歷物件屬性的7種方式JS物件
- MongoDB文件物件欄位屬性合併的2種轉換方法MongoDB物件
- JavaScript get set 訪問器屬性JavaScript
- c# tcbs屬性訪問器C#
- js使用id屬性值就可以引用一個物件JS物件
- HTML DOM之document物件的屬性和方法HTML物件
- React的Refs方法獲取DOM例項 和 訪問子元件方法及屬性React元件
- 陣列物件按物件某個屬性排序陣列物件排序
- 理解Python中的類物件、例項物件、屬性、方法Python物件
- js為物件新增和刪除屬性JS物件
- Ajax的XMLHttpRequest物件的屬性和方法總結XMLHTTP物件
- js知識梳理1:理解物件的屬性特性JS物件
- GObject的物件屬性GoObject物件