Knockout JS - 函数不是构造函数

Chr*_*ray 4 javascript jquery knockout.js

我收到以下代码的错误“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;
    });
});
})
Run Code Online (Sandbox Code Playgroud)

为什么我收到这个错误?

Jas*_*ake 5

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

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

  tabsmodel = new TabsViewModel();
Run Code Online (Sandbox Code Playgroud)