首頁 web前端 js教程 關於JavaScript物件的動態選擇及遍歷物件_javascript技巧

關於JavaScript物件的動態選擇及遍歷物件_javascript技巧

May 16, 2016 pm 04:55 PM
物件 遍歷對象

(一)動態選擇方法及屬性

在實際工作中,我們常會遇到這種情況:根據某個條件來呼叫兩個方法[1]中的一個,或是在兩個屬性[2]中的一個上面進行讀寫操作。下面的程式碼顯示了這個情形:

複製程式碼 程式碼如下:

if (condition ) {
myObj.method1(someArg);
} else {
myObj.method2(someArg);
}

JavaScript提供了一個簡單的語法,即使用方括號運算子([])來動態地選擇方法和屬性。如同下面的程式碼所示,JavaScript有兩個等價的成員存取語法(這個特徵在動態語言裡很常見):
obj[expressionResultingInMembername] == obj.memberName

如果你曾經使用整數下標來存取陣列中的某個元素,那你已經開始用方括號運算子來進行動態成員選擇了。這是因為,陣列物件本身就包含以數字下標命名的屬性(以及length屬性)。不過,JavaScript並不允許你使用點操作符(.)直接存取這些屬性,因此myArray.0在語法上是非法的(太遺憾了,這本來是個挺酷的語法)。
為什麼方括號運算子比點運算子表示法更強呢?這是因為你可以在方括號中使用任何代表成員名稱的內容來存取物件的成員。這些內容包括字面量、保存著成員名稱的變數、名稱組合(多數情況下是字串的拼接)以及用三元操作符(condition ? valueIfTrue : valueIfFalse)實現的快速if/then選擇。所有的這些內容都會被處理成一個字串,然後JavaScript會用這個字串來尋找對應的成員。
由於JavaScript中的函數本身也是對象,所以它可以像其他值一樣被引用。如果一個表達式的結果是函數,你可以直接用括號運算子呼叫它,就像你直接用函數名稱呼叫函數一樣。
要注意的是,如果你在向方法傳遞的參數上大量使用此類技巧,混亂的括號有可能會使程式碼變得難以閱讀,此時使用常規的if/else結構更加明智。

(二)JavaScript遍歷物件屬性與方法

JavaScript 使用 for in 語句來遍歷物件的屬性與方法。 for in 語句會循環遍歷 JavaScript 對象,每迴圈一次,就會取得物件的一個屬性或方法。

語法:
複製程式碼 程式碼如下:


程式碼如下:

for(valueName ObjectName){
// 程式碼} 其中,valueName 是變數名,保存屬性或方法的名稱,每次循環,valueName 的值都會改變。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

使用PHP的json_encode()函數將陣列或物件轉換為JSON字串 使用PHP的json_encode()函數將陣列或物件轉換為JSON字串 Nov 03, 2023 pm 03:30 PM

JSON(JavaScriptObjectNotation)是一種輕量級的資料交換格式,已成為Web應用程式之間資料交換的常用格式。 PHP的json_encode()函數可以將陣列或物件轉換為JSON字串。本文將介紹如何使用PHP的json_encode()函數,包括語法、參數、傳回值以及具體的範例。語法json_encode()函數的語法如下:st

使用Python的__contains__()函數定義物件的包含操作 使用Python的__contains__()函數定義物件的包含操作 Aug 22, 2023 pm 04:23 PM

使用Python的__contains__()函數定義物件的包含操作Python是一種簡潔而強大的程式語言,提供了許多強大的功能來處理各種類型的資料。其中之一是透過定義__contains__()函數來實現物件的包含操作。本文將介紹如何使用__contains__()函數來定義物件的包含操作,並且給予一些範例程式碼。 __contains__()函數是Pytho

如何將 MySQL 查詢結果陣列轉換為物件? 如何將 MySQL 查詢結果陣列轉換為物件? Apr 29, 2024 pm 01:09 PM

將MySQL查詢結果陣列轉換為物件的方法如下:建立一個空物件陣列。循環結果數組並為每一行建立一個新的物件。使用foreach迴圈將每一行的鍵值對賦給新物件的對應屬性。將新物件加入到物件數組中。關閉資料庫連線。

原始碼探針:Python 中物件是如何被呼叫的? 原始碼探針:Python 中物件是如何被呼叫的? May 11, 2023 am 11:46 AM

楔子我們知道物件被創建,主要有兩種方式,一種是透過Python/CAPI,另一種是透過呼叫類型物件。對於內建類型的實例物件而言,這兩種方式都是支援的,例如列表,我們即可以透過[]創建,也可以透過list(),前者是Python/CAPI,後者是呼叫類型物件。但對於自訂類別的實例物件而言,我們只能透過呼叫類型物件的方式來創建。而一個物件如果可以被調用,那麼這個物件就是callable,否則就不是callable。而決定一個物件是不是callable,就取決於其對應的型別物件中是否定義了某個方法。如

PHP 函數如何傳回物件? PHP 函數如何傳回物件? Apr 10, 2024 pm 03:18 PM

PHP函數可以透過使用return語句後接物件實例來傳回對象,從而將資料封裝到自訂結構中。語法:functionget_object():object{}。這允許創建具有自訂屬性和方法的對象,並以對象的形式處理資料。

使用Python的__le__()函數定義兩個物件的小於等於比較 使用Python的__le__()函數定義兩個物件的小於等於比較 Aug 21, 2023 pm 09:29 PM

標題:使用Python的__le__()函數定義兩個物件的小於等於比較在Python中,我們可以透過使用特殊方法來定義物件之間的比較操作。其中之一就是__le__()函數,它用來定義小於等於比較。 __le__()函數是Python中的一個魔法方法,並且是一種用於實現「小於等於」操作的特殊函數。當我們使用小於等於運算子(<=)比較兩個物件時,Python

C++ 函式回傳物件時有什麼需要注意的? C++ 函式回傳物件時有什麼需要注意的? Apr 19, 2024 pm 12:15 PM

在C++中,函數傳回物件需要注意三點:物件的生命週期由呼叫者負責管理,以防止記憶體洩漏。避免懸垂指針,透過動態分配記憶體或返回物件本身來確保物件在函數返回後仍然有效。編譯器可能會最佳化傳回物件的副本生成,以提高效能,但如果物件是值語義傳遞的,則無需副本生成。

數組和物件在 PHP 中的差異是什麼? 數組和物件在 PHP 中的差異是什麼? Apr 29, 2024 pm 02:39 PM

PHP中,數組是有序序列,以索引存取元素;物件是具有屬性和方法的實體,透過new關鍵字建立。數組存取透過索引,物件存取通過屬性/方法。數組值傳遞,物件參考傳遞。

See all articles