在 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 运算符 (检查直接属性和继承属性)
<code class="js">var myProp = 'prop'; if (myProp in myObj) { alert("yes, i have that property"); }</code>
选项 3:直接使用运算符(仅检查直接属性)
<code class="js">if ('prop' in myObj) { alert("yes, i have that property"); }</code>
注意: hasOwnProperty 不会检查继承的属性,而 in 运算符会检查。
以上是如何在 JavaScript 中使用变量检查对象属性是否存在?的详细内容。更多信息请关注PHP中文网其他相关文章!