Javascript JS";。。。“不是一个构造函数”;神秘
我在这一点上感到困惑,我确实寻找了一个解决方案,但没有找到一个完全符合我的情况。这是我遇到问题的代码块Javascript JS";。。。“不是一个构造函数”;神秘,javascript,Javascript,我在这一点上感到困惑,我确实寻找了一个解决方案,但没有找到一个完全符合我的情况。这是我遇到问题的代码块 this.render = function() { this.$el.html(Handlebars.compile($("#home-tpl").html())); itemListView = new ItemListView(); itemListView.setItems(items); $('.content', this.$el).html(ite
this.render = function() {
this.$el.html(Handlebars.compile($("#home-tpl").html()));
itemListView = new ItemListView();
itemListView.setItems(items);
$('.content', this.$el).html(itemListView.$el);
return this;
};
它第一次运行时完美无缺。但当我从另一页导航回这个页面时
itemListView = new ItemListView();
节给了我一个“ItemListView不是构造函数”错误!
这就是ItemListView的外观
var ItemListView = function () {
var service = new DataService();
var items = [];
this.initialize = function() {
this.$el = $('<div/>');
this.render();
};
this.viewAll = function() {
items = service.viewall();
this.render();
}
this.setItems = function(list) {
items = list;
this.render();
}
this.render = function() {
this.$el.html(Handlebars.compile($("#item-list-tpl").html())(items));
return this;
};
this.initialize();
}
var ItemListView=函数(){
var service=newdataservice();
var项目=[];
this.initialize=函数(){
这.$el=$('');
这个。render();
};
this.viewAll=函数(){
items=service.viewall();
这个。render();
}
this.setItems=函数(列表){
项目=列表;
这个。render();
}
this.render=函数(){
这个.el.html(handlebar.compile($(“#项目列表tpl”).html()(项目));
归还这个;
};
这是初始化();
}
现在为什么它第一次运行而不是下一次运行?在第二个代码块中,它是
ItemView
(如您所写)或ItemListView
?p.s.不要忘了对局部变量使用var
,例如var ItemListView=new ItemListView()
!对不起,从错误的文件粘贴。更正了现在的问题。以前尝试过使用var,但没有成功。我的第一个怀疑是,ItemListView
在第二次运行时不是同一个函数(甚至可能根本不是函数,因为在ES6之前,生成非构造函数的函数并不常见。)尝试将调试器添加到render
函数中,并在第二次调用时检查ItemListView
的值。