人们在很多方面使用Backbone.View
,我有点困惑。我见过:
Backbone.View.extend({});
new Backbone.View.extend({});
new Backbone.View();
new Backbone.View;
前三个不同。最后两个是相同的。 (请参阅here获取小提琴。)每种情况都会发生什么?
答案 0 :(得分:2)
一切都是一样的。
当您使用Backbone.View.extend({})
进行课程时,如您所见,您没有向您的课程添加任何aditional属性或方法。你传给它一个空哈希{}
作为参数。因此,Backbone.View
和Backbone.View.extend({})
几乎是一回事。
关于之前new
关键字的存在,它只是实例化一个新类。当你不使用new
关键字时,你只是在谈论类,而使用new
关键字,你正在谈论这个同一个类的一个对象。
Parentesis不是义务。只有当你想将参数传递给它的构造函数时才需要它,所以new Backbone.View()
和new Backbone.View;
是相同的,就像new Backbone.View()
和new Backbone.View.extend({})
一样,原因我之前写过
关于这个小提琴(http://jsfiddle.net/C2Z34/):
myView1
是一个扩展View myView2
(在我的小提琴中使用parentesis)是Backbone.View myView3
是Backbone.View类的对象。它没有延长。myView4
与myView3
答案 1 :(得分:-1)
Extend创建一个子类。在您的示例中,您不添加任何自定义代码,因此视图类的行为与原始主干视图完全相同。使用new关键字,可以调用类的构造函数,该函数返回视图的实例。 因此,如果您想在视图中拥有自定义代码,例如。使用渲染功能可以扩展BB视图。然后,当您想要使用此视图时,您可以创建扩展视图的新实例。