在 JavaScript 中處理物件時,通常需要檢查特定屬性是否存在。但是,如果屬性名稱儲存在變數中,則傳統方法可能無法有效運作。
在給定的程式碼片段中,開發人員嘗試檢查 myObj 物件是否具有名為「prop」的屬性,但是myProp 變數未正確定義字串連接。因此,程式碼會搜尋不存在的屬性“myProp”。
要解決此問題,可以使用幾個替代方法:
hasOwnProperty() 方法驗證指定的屬性是否直接在物件中定義(不是從其原型繼承)。
<code class="js">var myProp = 'prop'; if(myObj.hasOwnProperty(myProp)){ alert("yes, i have that property"); }</code>
in 運算子檢查物件中是否存在給定屬性,無論它是直接定義的還是繼承的。
<code class="js">var myProp = 'prop'; if(myProp in myObj){ alert("yes, i have that property"); }</code>
如果確定知道屬性名稱,則可以直接檢查它,而不需要變數。
<code class="js">if('prop' in myObj){ alert("yes, i have that property"); }</code>
注意: hasOwnProperty () 方法忽略繼承的屬性,而 in 運算子包含它們。因此,方法的選擇取決於繼承的屬性是否與正在執行的檢查相關。
以上是如何檢查 Javascript 物件中是否存在具有動態屬性名稱的屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!