Если у вас есть ссылка на него в obj
, то:
if (obj && obj.SendEmailResult && "MessageId" in obj.SendEmailResult) {
// The "MessageId" property exists in `obj.SendEmailResult`
}
Вероятно, более полезно, хотя:
var msgid = obj && obj.SendEmailResult && obj.SendEmailResult.MessageId;
if (msgid) {
// The property exists and is "truthy", `msgid` is the value
}
Оператор JavaScript &&
более полезен, чем в некоторых других языках, он возвращает значение правой части, если оба его операнда являются "правдивыми" (а не просто возвращает true
/ false
результат, как в большинстве языков). «Истинное» значение - это значение, которое не является «ложным» (очевидно). «Ложные» значения: false
, undefined
, null
, ""
и 0
.
Таким образом, вышеприведенное в основном говорит: «Установите msgid
на obj.SendEmailResult.MessageId
при условии, что существуют obj
и obj.SomeEmailResult
.
(Оператор ||
является таким же мощным .)