Вызов функции из внешнего файла javascript дождитесь загрузки класса

#javascript

#javascript

Вопрос:

У меня есть файл javascript, который размещен на веб-сайте клиента, структурированный как:

 class Example {
    constructor() {
        this.settings = null;
        this.customProps = null;
    }

    setProps(props) {
        if (typeof props !== "undefined") {
           this.customProps = props;
        }
        
        this.settings.customProps = this.customProps;
    }
}

window.Example = new Example();
  

Эта ссылка на этот файл вводится в <head> , очень похоже на работу Google Analytics и т. Д.

Затем со страницы я бы хотел, чтобы клиент мог при необходимости устанавливать пользовательские свойства:

 Example.setProps({ foo: 'bar' });
  

Проблема в том, что я не могу контролировать, где это размещено. Итак, я заметил, что может произойти то, что код вызывается до загрузки файла javascript, что приводит к следующей ошибке: TypeError: null is not an object (evaluating 'this.settings.customProps = this.customProps') .

Я предполагаю, что мне нужно встроить проверку в setProps, которая проверяет, готов ли класс Example ? И затем, если это не так, подождите, пока это не произойдет, а затем установите реквизиты?

Комментарии:

1. Вы можете запустить свой JavaScript в определенное время, например, при загрузке страницы и т.д.

2. Я бы хотел, чтобы файл javascript загружался после завершения загрузки страницы, чтобы не влиять на производительность веб-сайта клиента. Вот почему я хочу попытаться найти решения, как описано в ответе. Возможно ли это?