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

时间:2016-07-14 10:32:52

标签: javascript object objectname object-notation

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

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

谢谢。

4 个答案:

答案 0 :(得分:6)

您可以使用in运算符:

if ("height" in me) {
  // object has a property named "height"
}
else {
  // no property named "height"
}

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

me.height = 100;

无论物体是否具有高度"以前的财产。

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

if (me.hasOwnProperty("height"))

in的测试之间的区别在于.hasOwnProperty()仅在属性存在时才返回true 并且作为对象的直接属性存在,并且不是通过其原型链继承的。

答案 1 :(得分:1)

您可以使用.hasOwnProperty

me.hasOwnProperty('height'); //false

答案 2 :(得分:1)

直接答案:

if (Object.keys(me).indexOf("name") >= 0) {
    //do the stuff
}

但是,你应该做的是创建一个契约对象/类/模块,期望我拥有height属性。如果它没有,你应该抛出异常。编程中最糟糕的事情是半个月的预期。它不仅打破了SOLID规则,而且还导致了这样的情况,其中唯一的解决方案是重复if / switch语句,以确保处理所有可能性......

答案 3 :(得分:1)

你可以使用

dataframe