了解Backbone.View

时间:2011-12-27 01:42:36

标签: javascript backbone.js

人们在很多方面使用Backbone.View,我有点困惑。我见过:

Backbone.View.extend({});
new Backbone.View.extend({});
new Backbone.View();
new Backbone.View;

前三个不同。最后两个是相同的。 (请参阅here获取小提琴。)每种情况都会发生什么?

2 个答案:

答案 0 :(得分:2)

一切都是一样的。

当您使用Backbone.View.extend({})进行课程时,如您所见,您没有向您的课程添加任何aditional属性或方法。你传给它一个空哈希{}作为参数。因此,Backbone.ViewBackbone.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类的对象。它没有延长。
  • myView4myView3
  • 相同

答案 1 :(得分:-1)

Extend创建一个子类。在您的示例中,您不添加任何自定义代码,因此视图类的行为与原始主干视图完全相同。使用new关键字,可以调用类的构造函数,该函数返回视图的实例。 因此,如果您想在视图中拥有自定义代码,例如。使用渲染功能可以扩展BB视图。然后,当您想要使用此视图时,您可以创建扩展视图的新实例。