我是骨干js的新手,并且在看似微不足道的方面遇到了困难。
每当我调用Backbone.Collection.extend,Backbone.Model.extend或Backbone.View.extend时,返回的是一个空函数而不是一个具有继承属性的对象。
示例:
var view = Backbone.View.extend({
});
console.log("View:");
console.log(view);
Console.log显示:
View:
function()
如果单击“function()”,没有任何反应,它只是一个没有属性的空函数。
我尝试扩展Backbone对象的任何地方,我都遇到了同样的问题。在我探讨这个问题时,我尝试了这个:
var collection = Backbone.Collection.extend({
add: function() {
console.log("Add gets called");
return {};
}
});
console.log("Collection:");
console.log(collection);
console.log(collection.add());
控制台显示:
Collection:
function()
TypeError: collection.add is not a function
我认为我的requirejs设置没有什么异常,所以我希望有更多经验的人使用下划线和主干的extend()可以告诉我为什么他们有时会返回空函数。
对于我可能会考虑解决这个问题的方面的任何建议都会受到欢迎。作为所涉及的图书馆的新手,我有点想知道如何解决这个问题,所以我可以继续使用我的应用程序。
答案 0 :(得分:1)
扩展 Backbone.Collection.extend(properties,[classProperties])
要创建自己的Collection类,请扩展Backbone.Collection,提供实例属性,以及可直接附加到集合构造函数的可选classProperties。
因此,在您的情况下view
是Collection class
,请尝试使用new
关键字对其进行实例化:
var view = Backbone.View.extend({
});
console.log("View:");
console.log(new view()); // Here