2016-08-14 7 views
0

このトピックに関するすべての記事はここにありますが、実際の解決策は見つかりませんでした。私のコードでは何か違うかもしれません。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***コメントを参照戻っている

+0

'xyzRequest:それを使用するので、

// Note: This is verbatim from the question other than this comment and // the *** comment below.. It's not valid syntax on its own (the function // would need a name), but I assume it's an excerpt from something larger. function() { var xyzRequest = function() { this.loadReport = function(report) { --some data--} } return { XyzRequest: xyzRequest // *** } } 

を、あなたはその資本Xが必要!== XyzRequest'。 – Teemu

+0

'requestFactory'関数は' requestRequest'メソッドをグローバルオブジェクトに追加し、 'requestFactory'関数には追加しません。 'requestFactory.createRequest'は' undefined'です。そのコードには多くの問題があります。 JavaScriptは大文字と小文字を区別します。 – undefined

+0

これはあなたの本当のコードではないようです。なぜなら、xyzRequestManager.jsが構文エラーで失敗し、表示されたコードが質問と異なる*エラーを生成するからです(Vohumanのコメントを参照)。実際の[mcve]を作成し、ファイルの読み込み方法を示して、お互いの内容を参照できるようにします。 –

答えて

1

request = new xyzRequestManager.XyzRequest(); 
// -----------------------------^ 
+0

が更新されましたが、それと同じ問題です。私は同じ名前、別の名前、別のケーシングでしようとした!しかし、同じエラーです。 – Anshul

関連する問題