如何确定一个对象是否在JavaScript中有一个给定的属性
  无论xy的值如何,我如何确定对象x是否具有已定义的属性y ? 
我目前正在使用
if (typeof(x.y) !== 'undefined')
但这似乎有点笨重。 有没有更好的办法?
对象有属性:
  如果您正在测试对象本身的属性(不是其原型链的一部分),则可以使用.hasOwnProperty() : 
if (x.hasOwnProperty('y')) { 
  // ......
}
对象或其原型有一个属性:
  您可以使用in运算符来测试继承的属性。 
if ('y' in x) {
  // ......
}
  如果你想知道对象物理上是否包含属性@ gnarf的答案,使用hasOwnProperty将完成这项工作。 
  如果您想知道属性是否存在于任何地方,无论是在对象本身还是在原型链中,都可以使用in运算符。 
if ('prop' in obj) {
  // ...
}
例如。:
var obj = {};
'toString' in obj == true; // inherited from Object.prototype
obj.hasOwnProperty('toString') == false; // doesn't contains it physically
你可以修剪一下,就像这样:
if ( x.y !== undefined ) ...
上一篇: How to determine whether an object has a given property in JavaScript
