#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 загружался после завершения загрузки страницы, чтобы не влиять на производительность веб-сайта клиента. Вот почему я хочу попытаться найти решения, как описано в ответе. Возможно ли это?