在Javascript中.如何判断对象内是否存在字段?

Kho*_*hoi 62 javascript

当然,我想以代码方式执行此操作.并不是说我面对这个问题没有其他选择,只是好奇.

Gar*_*ers 89

这将忽略通过原型链传递的属性.

if(obj.hasOwnProperty('field'))
{
    // Do something
}
Run Code Online (Sandbox Code Playgroud)


Pet*_*hof 58

更新:使用hasOwnPropertyGary Chambers建议的方法.下面的解决方案可行,但它被认为是最佳实践hasOwnProperty.

if ('field' in obj) {
}
Run Code Online (Sandbox Code Playgroud)

  • @JoSmo in语法可以为原型链中的属性返回true,正如Gary Chambers在他的回答中提到的那样.拥有自己的属性只会检查当前对象特有的字段. (2认同)

小智 6

除上述方法外,您还可以使用以下方式:

if(obj.myProperty !== undefined) {
}
Run Code Online (Sandbox Code Playgroud)

  • 此方法无法区分缺失字段和具有未定义值的现有字段。例如:`{}` 和 `{a : undefined}` (5认同)
  • @Jason 这不是重点。关键是你不能用它来检查对象中是否存在字段。 (2认同)