3. 使用方括號記法
當訪問由執(zhí)行時決定或者包括要不能用”.”號訪問的對象屬性,使用方括號記法。如果你不是一個經驗豐富的Javascript程序員,總是使用方括號是一個不錯的做法
對象的屬性由兩種固定的方法來訪問:”.”記法和”[ ]“方括號記法:
“.”號記法
MyObject.property“[ ]“
方括號記法
MyObject["property"]
使用”.”號,屬性名是硬代碼,不能在執(zhí)行時改變。使用”[ ]“方括號,屬性名是一個通過計算屬性名而來的字符串。字符串要以是硬代碼,也可能是變量,甚至可以是一個調回一個字母串值的函數(shù)。 如果一個屬性名在執(zhí)行產生,方括號是必須,如果你有 “value1″, “value2″, 和 “value3″這樣的屬性,并且想利用變量 i=2來訪問。
這個可以運行:
MyObject["value"+i]
這個不可以:
MyObject.value+i
并且在某些服務器端環(huán)境(PHP、Struts等)下,F(xiàn)orm 表單被附加了 [ ] 號來表示 Form 表單在服務器端必須被當作數(shù)組來對待。如此,用”.”號來引用一個包含 [ ] 號的字段將不會執(zhí)行,因為 [ ] 是引用一個 Javascript 數(shù)組的語法。所以,[ ] 號記法是必須的:
這個可以運行:
formref.elements["name[]"]
這個不可以:
formref.elements.name[]
推薦使用”[ ]“方括號記法是說當其需要時(明顯地)總是使用它。當不是嚴格需要使用它的時候,它是一個私人的偏好和習慣。一個好的經驗原則是,使用”.”號記法訪問標準的對象屬性,使用”[ ]“方括號記法訪問由頁面定義的對象屬性。這樣,document["getElementById"]() 是一個完美可行的”[ ]“方括號記法用法,但 document.getElementById() 在語法上是首選,因為 getElementById 是一個 DOM 規(guī)范中定義的一個標準文檔對象屬性;旌鲜褂眠@兩個記法使哪個是標準對象屬性,哪個屬性名是由上下文所定義的,在代碼中顯得清晰明了:
document.forms["myformname"].elements["myinput"].value
這里,forms 是 document 的一個標準屬性,而表單名 myformname 則是由頁面所定義的。同時,elements 和 value 屬性都是由規(guī)范所定義的標準屬性。而 myinput 則是由頁面所定義的。這頁是句法讓人非常容易理解(代碼的內容),是一個推薦遵循的習慣用法,但不是嚴格原則。
出處:幸福收藏夾
責任編輯:bluehearts
上一頁 14條最佳JS代碼編寫技巧 [1] 下一頁 14條最佳JS代碼編寫技巧 [3]
◎進入論壇網頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|