Knockout JS - 函数不是构造函数

4

使用以下代码时,我收到“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;
    });
});
})

为什么会出现这个错误?

2个回答

5
您正在尝试在TabsViewModel不存在之前调用它。请将您的函数定义移到函数执行之上。
  var TabsViewModel = (function() {
    let self = {};
    self.test = "123";
    return self;
  });

  tabsmodel = new TabsViewModel();

1

我遇到了类似的问题,问题在于我的类是匿名函数而不是普通函数。

不可行:

var TabsViewModel = () => { ... }

工作:

var TabsViewModel = function() { ... }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接