如何使用属性名称变量有效检查对象属性是否存在
使用 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中文网其他相关文章!