Я просмотрел все сообщения здесь, связанные с этой темой, но не смог найти рабочего решения. Может быть что-то совсем другое в моем коде.
Файл 1, RequestFactory.js
function requestFactory() {
this.createRequest = function (reportId) {
var request;
request = new xyzRequestManager.XyzRequest();
return request;
}
return {
RequestFactory: requestFactory
}
}
Файл 2, request.js
function loadData() {
var request = requestFactory.createRequest(id);
request.loadReport(report);
}
Файл 3, xyzRequestManager.js
function () {
var xyzRequest = function() {
this.loadReport = function(report) { --some data--}
}
return {
XyzRequest: xyzRequest
}
}
Итак, вызов начинается с файла2, я создаю объект запроса, вызывая requestFactory. В файле 3 записано множество других функций, которые аналогичным образом вызываются из файла 1, запрашивают фабричный объект и вызывают функцию.
Это дает ошибку как,
Uncaught TypeError: xyzRequestManager.XyzRequest is not a constructor
Я потратил часы на это, и до сих пор не знаю, что и где я не прав. Любая помощь будет оценена по достоинству.
requestFactoryдобавляет методcreateRequestк глобальному объекту, а не к функцииrequestFactory.requestFactory.createRequestэтоundefined. Этот код имеет много проблем. JavaScript чувствителен к регистру! - person undefined   schedule 14.08.2016xyzRequestManager.jsзавершится ошибкой синтаксиса, а показанный код выдаст отличную ошибку от той, что в вопросе (см. Комментарий Vohuman). Создайте фактический минимальный воспроизводимый пример и покажите, как вы загружаете файлы, чтобы они могли ссылаться на содержимое друг друга. . - person T.J. Crowder   schedule 14.08.2016