在 JavaScript 中,使用變數驗證物件屬性是否存在可能是一項常見任務。然而,直接使用變數作為屬性名稱會導致未定義的結果。
範例:
<code class="js">var myObj; myObj.prop = "exists"; var myProp = "p" + "r" + "o" + "p"; if (myObj.myProp) { alert("yes, i have that property"); }; // Undefined</code>
要克服這個問題,必須使用明確檢查屬性的方法
解決方案:
選項1:hasOwnProperty
<code class="js">var myProp = 'prop'; if (myObj.hasOwnProperty(myProp)) { alert("yes, i have that property"); }</code>
選項2:in 運算子(檢查直接和繼承屬性)
選項2: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>選項3:直接使用運算子(僅檢查直接屬性)
注意: hasOwnProperty 不會檢查繼承的屬性,而in 運算子會檢查。
以上是如何在 JavaScript 中使用變數檢查物件屬性是否存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!