如何访问JavaScript对象属性名称不值
问题描述:
我有一个对象me = { name: "Mo", age: 28, }
我想看看这个对象有例如属性“高度”。 (它没有)我怎么能做到这一点?例如,如果它具有“高度”属性,我可以给它一个“5,7”的值。如何访问JavaScript对象属性名称不值
请注意:我不想检查属性VALUE(me.name),而是检查属性NAME。
谢谢。
答
可以使用in
操作:
if ("height" in me) {
// object has a property named "height"
}
else {
// no property named "height"
}
注意,如果对象没有名为“高度”属性,你仍然可以添加这样一个属性:
me.height = 100;
这一工程不管对象之前是否具有“高度”属性。
另外还有.hasOwnProperty
方法从对象的原型继承:
if (me.hasOwnProperty("height"))
那之间的区别与in
测试是.hasOwnProperty()
只返回true,如果属性存在和存在作为直接属性,而不是通过其原型链继承。
答
直接回答:
if (Object.keys(me).indexOf("name") >= 0) {
//do the stuff
}
,但你应该做的,是建立一个契约对象/类/模块,希望我有height
财产。如果没有,你应该抛出异常。编程中最糟糕的事情是一半的预期。它不仅打破了SOLID戒律,但也导致这样的,其中唯一的解决办法是重复的,如果/ switch语句,以确保治疗的所有可能性的情况......
答
可以使用
if (me.hasOwnProperty('height'))
{
}
else
{
}
比你。有没有方法可以在不使用条件语句的情况下将控件的属性名打印出来?只是打印出属性名称>(并且不使用for循环)? – zzgooloo