在 JavaScript 中处理对象时,通常需要检查特定属性是否存在。但是,如果属性名称存储在变量中,则传统方法可能无法有效工作。
在给定的代码片段中,开发人员尝试检查 myObj 对象是否具有名为“prop”的属性,但是myProp 变量未正确定义字符串连接。因此,代码会搜索不存在的属性“myProp”。
要解决此问题,可以使用几种替代方法:
hasOwnProperty() 方法验证指定的属性是否直接在对象中定义(不是从其原型继承)。
<code class="js">var myProp = 'prop'; if(myObj.hasOwnProperty(myProp)){ alert("yes, i have that property"); }</code>
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>
注意: hasOwnProperty () 方法忽略继承的属性,而 in 运算符包含它们。因此,方法的选择取决于继承的属性是否与正在执行的检查相关。
以上是如何检查 Javascript 对象中是否存在具有动态属性名称的属性?的详细内容。更多信息请关注PHP中文网其他相关文章!