如何访问javaScript对象属性NAME而不是VALUE

zzg*_*loo 1 javascript object object-notation objectname

我有一个对象
me = { name: "Mo", age: 28, } 我想看看这个对象是否具有属性"高度",例如.(它没有)我怎么能这样做?因此,例如,如果它具有属性"height",我可以给它一个值"5,7".

请注意:我不想检查属性VALUE(me.name),而是检查属性NAME.

谢谢.

Poi*_*nty 6

您可以使用in运营商:

if ("height" in me) {
  // object has a property named "height"
}
else {
  // no property named "height"
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果对象没有名为"height"的属性,您仍然可以添加这样的属性:

me.height = 100;
Run Code Online (Sandbox Code Playgroud)

无论对象之前是否具有"高度"属性,这都有效.

还有.hasOwnProperty从Object原型继承的方法:

if (me.hasOwnProperty("height"))
Run Code Online (Sandbox Code Playgroud)

这一点,与测试之间的差别in在于,.hasOwnProperty()只有当属性存在返回true 并且存在作为对象上的直接属性,并通过其原型链不继承.