繁体   English   中英

Javascript:未捕获的TypeError,不是构造函数

[英]Javascript: Uncaught TypeError, not a constructor

我浏览了所有与此主题相关的帖子,但是找不到有效的解决方案。 可能与我的代码有很大不同。

文件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
 }
}

因此,调用从file2开始,我通过调用requestFactory创建了请求对象。 文件3中还编写了许多其他函数,这些文件也以类似的方式从文件1中被调用,请求工厂对象,并对该函数进行调用。

这给出了错误,

Uncaught TypeError: xyzRequestManager.XyzRequest is not a constructor

我在此上浪费了时间,但仍然不知道我错了什么地方。 任何帮助,将不胜感激。

您将返回一个具有名为XyzRequest而不是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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM