如何确定一个对象是否在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