Как получить доступ к свойству объекта javaScript ИМЯ, а не ЗНАЧЕНИЕ
У меня есть объект me = {
name: "Mo",
age: 28,
}
И я хочу посмотреть, если этот объект имеет свойство "высота", например. (чего нет) Как я могу это сделать? Так, например, если у него есть свойство "высота", я могу дать ему значение "5,7".
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: Я не хочу проверять для свойства VALUE(me.name), но для свойства NAME.
Спасибо.
4 ответа
Вы можете использовать in
оператор:
if ("height" in me) {
// object has a property named "height"
}
else {
// no property named "height"
}
Обратите внимание, что если у объекта нет свойства с именем height, вы все равно можете добавить такое свойство:
me.height = 100;
Это работает независимо от того, имел ли объект ранее свойство "height".
Там также .hasOwnProperty
Метод, унаследованный от прототипа Object:
if (me.hasOwnProperty("height"))
Разница между этим и тестом с in
в том, что .hasOwnProperty()
возвращает true, только если свойство присутствует и присутствует как прямое свойство объекта и не наследуется через цепочку его прототипов.
Ты можешь использовать
if (me.hasOwnProperty('height'))
{
}
else
{
}
Ты можешь использовать .hasOwnProperty
me.hasOwnProperty('height'); //false
Прямой ответ:
if (Object.keys(me).indexOf("name") >= 0) {
//do the stuff
}
НО, что вы должны сделать, это создать договорный объект / класс / модуль, ожидая, что у меня будет height
имущество. Если это не так, вы должны выбросить исключение. Худшие вещи в программировании - это наполовину ожидания. Это не только нарушает правила SOLID, но также приводит к подобным сценариям, где единственным решением являются повторяющиеся операторы if/switch, чтобы гарантировать обработку всех возможностей...