Как проверить наличие нескольких 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;
            }

Ответы

Ответ 2

Это именно то, для чего предназначен dojo/_base/lang.getObject.

var scrollTop = lang.getObject('view.formView._dapSections.scrollTop', false, this);
if (scrollTop) {
    globals.lastScrollPosition = scrollTop;
}
  • Первый аргумент представляет собой строку, представляющую свойства объекта для поиска
  • Второй аргумент заключается в том, создавать ли каждое свойство, если оно не существует (обычно вы этого не хотите)
  • Третий аргумент - это объект для использования в качестве контекста для поиска