如何访问 javaScript 对象 属性 NAME not VALUE

How to access javaScript object property NAME not VALUE

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

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

谢谢。

您可以使用 in 运算符:

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

注意,如果对象没有属性命名为"height",你仍然可以添加这样一个属性:

me.height = 100;

无论对象之前是否有 "height" 属性,这都有效。

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

if (me.hasOwnProperty("height"))

它与使用 in 的测试之间的区别在于 .hasOwnProperty() 只有 returns 如果 属性 存在 作为对象的直接 属性 存在,而不是通过其原型链继承。

您可以使用.hasOwnProperty

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

直接回答:

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

但是,您应该做的是创建合同 object/class/module,期望我拥有 height 属性。如果没有,您应该抛出异常。编程中最糟糕的事情是半途而废的期望。它不仅打破了 SOLID 规则,而且导致了这样的场景,其中唯一的解决方案是重复 if/switch 语句以确保处理所有可能性...

你可以使用

if (me.hasOwnProperty('height'))
{
 }
else
{
 }