如何确定一个对象是否在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 ) ...
链接地址: http://www.djcxy.com/p/699.html

上一篇: How to determine whether an object has a given property in JavaScript

下一篇: How to push a tag to a remote repository using Git?