このトピックに関するすべての記事はここにありますが、実際の解決策は見つかりませんでした。私のコードでは何か違うかもしれません。Javascript:Uncaught TypeError、コンストラクターではありません
ファイル1、RequestFactory.js
function requestFactory() {
this.createRequest = function (reportId) {
var request;
request = new xyzRequestManager.XyzRequest();
return request;
}
return {
RequestFactory: requestFactory
}
}
ファイル2、ファイル3、xyzRequestManager.js
function() {
var xyzRequest = function() {
this.loadReport = function(report) { --some data--}
}
return {
XyzRequest: xyzRequest
}
}
だから、呼び出しがファイル2から始まり
function loadData() {
var request = requestFactory.createRequest(id);
request.loadReport(report);
}
をrequest.js私はrequestFactoryを呼び出して要求オブジェクトを作成します。同様の方法でファイル1から呼び出され、ファクトリオブジェクトを要求し、その関数を呼び出す、ファイル3に書き込まれた他の関数がたくさんあります。
これは、などのエラーを与える、
Uncaught TypeError: xyzRequestManager.XyzRequest is not a constructor
私はまだ私が間違って何か見当もつかないをこの上で時間を無駄にしない、としています。 ご協力いただければ幸いです。あなたはXyzRequest
と呼ばれるプロパティを持つオブジェクトではなく、xyzRequest
、***
コメントを参照戻っている
'xyzRequest:それを使用するので、
を、あなたはその資本
X
が必要!== XyzRequest'。 – Teemu'requestFactory'関数は' requestRequest'メソッドをグローバルオブジェクトに追加し、 'requestFactory'関数には追加しません。 'requestFactory.createRequest'は' undefined'です。そのコードには多くの問題があります。 JavaScriptは大文字と小文字を区別します。 – undefined
これはあなたの本当のコードではないようです。なぜなら、xyzRequestManager.jsが構文エラーで失敗し、表示されたコードが質問と異なる*エラーを生成するからです(Vohumanのコメントを参照)。実際の[mcve]を作成し、ファイルの読み込み方法を示して、お互いの内容を参照できるようにします。 –