我收到以下代码错误“TabsViewModel不是构造函数”。我看过有关此错误的其他文章,但大多数人建议在其他地方使用该函数名称,但是如您所见,这是一个非常简单的示例,并且TabsViewModel在其他地方未使用。

        define(['utils','ko','text!tmpl/risersandfallerstabs_partial.html','text!tmpl/errorPage_partial.html'], function(utils,ko,tmplrisersandfallerstabsStr,tmplErrStr) {
let tabsmodel = {};
$(function() {
    tabsmodel = new TabsViewModel();
    ko.components.register('risersandfallerstabs', {
        viewModel: utils.createVM(tabsmodel),
        template: tmplrisersandfallerstabsStr
    });
    utils.applyBindings(tabsmodel,'risersandfallerstabs');

    var TabsViewModel = (function(){
        let self = {};
        self.test = "123";
        return self;
    });
});
})


为什么会出现此错误?

最佳答案

您试图在它存在之前调用TabsViewModel。将函数定义移到函数执行上方。

  var TabsViewModel = (function() {
    let self = {};
    self.test = "123";
    return self;
  });

  tabsmodel = new TabsViewModel();

10-06 06:42