Как проверить наличие нескольких undefined в dojo или JavaScript?
В моем проекте есть код ниже. Как вы можете видеть, мне пришлось проверить undefined для всех объектов и свойств this.view && this.view.formView && this.view.formView._dapSections && & this.view.formView._dapSections.scrollTop.
Я ищу способ проверить undefined для всех сразу. Есть ли способ сделать это в JavaScript или dojo?
if(this.view && this.view.formView && this.view.formView._dapSections && this.view.formView._dapSections.scrollTop) {
globals.lastScrollPosition = this.view.formView._dapSections.scrollTop;
}
Ответы
Ответ 1
Вы также можете попробовать lang.exists()
https://dojotoolkit.org/reference-guide/1.10/dojo/_base/lang.html#dojo-base-lang-exists
if (lang.exists('view.view.formView._dapSections.scrollTop', this) {
globals.lastScrollPosition = this.view.formView._dapSections.scrollTop;
}
Ответ 2
Это именно то, для чего предназначен dojo/_base/lang.getObject
.
var scrollTop = lang.getObject('view.formView._dapSections.scrollTop', false, this);
if (scrollTop) {
globals.lastScrollPosition = scrollTop;
}
- Первый аргумент представляет собой строку, представляющую свойства объекта для поиска
- Второй аргумент заключается в том, создавать ли каждое свойство, если оно не существует (обычно вы этого не хотите)
- Третий аргумент - это объект для использования в качестве контекста для поиска