在 JavaScript 中使用變數動態存取屬性
在 JavaScript 中,使用變數動態存取物件屬性可能會帶來挑戰。讓我們考慮以下場景:
var myObj; myObj.prop = "exists"; var myProp = "p"+"r"+"o"+"p"; if(myObj.myProp){ alert("yes, i have that property"); };
在此範例中,我們要檢查 myObj 物件中是否存在 prop 屬性。但是,條件 myObj.myProp 的計算結果為 undefined,因為它實際上是在檢查是否存在不存在的屬性 (myObj.myProp)。
要正確動態存取該屬性,我們可以使用以下技術:
1。 hasOwnProperty 方法:
hasOwnProperty 方法檢查物件在其自己的屬性清單中是否具有特定屬性(不包括繼承的屬性)。
var myProp = 'prop'; if(myObj.hasOwnProperty(myProp)){ alert("yes, i have that property"); }
2. in 運算子:
in 運算子檢查物件是否有指定屬性,包括繼承的屬性。
var myProp = 'prop'; if(myProp in myObj){ alert("yes, i have that property"); }
3.簡寫表示法:
如果屬性名稱是字串文字,我們可以使用簡寫表示法:
if('prop' in myObj){ alert("yes, i have that property"); }
重要提示:
以上是如何在 JavaScript 中使用變數動態存取物件屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!