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物件
- 深入理解物件的資料屬性與訪問器屬性物件
- js物件屬性JS物件
- 教你如何直接訪問php例項物件的private屬性PHP物件
- 課時45:魔法方法:屬性訪問
- python物件屬性管理(2):property管理屬性Python物件
- 子類擁有父類物件所有的屬性和方法,但無法訪問物件
- css屬性與js中style物件的屬性對應表CSSJS物件
- Python中訪問私有屬性和私有方法Python
- js判斷物件裡面是否有某個屬性JS物件
- JS遍歷物件屬性的7種方式JS物件
- jQuery事件物件event的屬性和方法jQuery事件物件
- 理解Python中的類物件、例項物件、屬性、方法Python物件
- js知識梳理1:理解物件的屬性特性JS物件
- JavaScript get set 訪問器屬性JavaScript
- JS常用屬性方法大全(一)JS
- HTML DOM之document物件的屬性和方法HTML物件
- 陣列物件按物件某個屬性排序陣列物件排序
- Object物件的屬性Object物件
- GObject的物件屬性GoObject物件
- JS物件繼承時,對引用屬性的處理JS物件繼承
- Python 訪問和設定私有屬性Python
- 關於JS陣列中相同物件屬性值歸類方法的一點思考JS陣列物件
- JavaScript內建物件屬性及方法大全JavaScript物件
- js--物件內部屬性與 Object.defineProperty()JS物件Object
- 理解 JavaScript 物件的屬性JavaScript物件
- 原型鏈上的get與set訪問器屬性原型
- C#獲取某個物件的屬性值C#物件
- day10_物件導向(屬性丶方法)①物件
- js如何使用索引訪問陣列物件中的元素JS索引陣列物件
- 04-2個常用的文字屬性
- [譯]JS Tips:選擇(picking)和反選(rejecting)物件的屬性JS物件
- js去掉json中重複的id 重新push新的物件屬性JSON物件
- CAD屬性編輯操作——物件屬性教程物件
- 論如何監聽物件某個屬性的變化物件
- JavaScript ----- 操作DOM物件的屬性JavaScript物件