2016-07-14 4 views
0

У меня есть объект
me = { name: "Mo", age: 28, } И я хочу, чтобы увидеть, если этот объект имеет свойство «высота», например. (что это не так) Как я могу это сделать? Так, например, если у него есть свойство «высота», я могу дать ему значение «5,7».Как получить доступ к Java-script свойство объекта NAME не дорожит

ОБРАТИТЕ ВНИМАНИЕ: Я не хочу проверять свойство VALUE (me.name), но для свойства NAME.

спасибо.

ответ

6

Вы можете использовать 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() только возвращает истину, если свойство присутствует и присутствует как прямое свойство на объекте и не наследуется через свою прототипную цепочку.

+0

Чем вы , Есть ли способ распечатать имя свойства на консоли без использования условного оператора? просто распечатайте имя свойства> (и без использования цикла for for)? – zzgooloo

1

Direct Ответ:

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

НО, что вы должны сделать, это создать договорной объект/класс/модуль, ожидая меня, чтобы иметь height собственности. Если это не так, вы должны выбросить исключение. Худшие вещи в программировании - это полузабытые ожидания. Это не только нарушает SOLID заповедей, но и приводит к сценариям, как это, где единственное решение является повторным, если заявления/выключателя, чтобы убедиться, что лечить все возможности ...

1

вы можете использовать

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

 Смежные вопросы

  • Нет связанных вопросов^_^