如何使用屬性名稱變數有效檢查物件屬性是否存在
使用 JavaScript 物件時,確定特定屬性是否存在至關重要。但是,如果您需要利用變數來保存目標屬性名稱怎麼辦?
在提供的範例中:
<code class="js">var myObj; myObj.prop = "exists"; var myProp = "p"+"r"+"o"+"p"; if(myObj.myProp){ alert("yes, i have that property"); };</code>
程式碼嘗試檢查名為 ' 的屬性是否存在myprop',它不存在。這是因為 JavaScript 將表達式計算為“myObj.myprop”而不是“myObj.prop”。
要成功實現此邏輯,您可以利用多種方法:
使用hasOwnProperty
<code class="js">var myProp = 'prop'; if(myObj.hasOwnProperty(myProp)){ alert("yes, i have that property"); }</code>
hasOwnProperty 物件驗證是否擁有特定屬性,不包括繼承的屬性。
使用in 運算子(ES5)
<code class="js">var myProp = 'prop'; if(myProp in myObj){ alert("yes, i have that property"); }</code>
in 運算子檢查物件的可列舉屬性,包括物件本身的可枚舉屬性和繼承的。
使用方括號(ES6)
<code class="js">if('prop' in myObj){ alert("yes, i have that property"); }</code>
在 ES6 中,方括號可以與 in 運算子互換使用,用於檢查屬性是否存在。
以上是如何在 JavaScript 物件中使用變數屬性名稱來檢查屬性是否存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!