Understanding Backbone.View

Understanding Backbone.View

本文关键字:View Backbone Understanding      更新时间:2023-09-26

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

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

前三个不同。最后两个是一样的。(请点击此处查看小提琴。)每种情况下都发生了什么?

这都是一回事。

当您使用Backbone.View.extend({})扩展一个类时,正如您所看到的,您没有向您的类添加任何额外的属性或方法。你传递给它一个空散列{}作为参数。因此,Backbone.ViewBackbone.View.extend({})几乎是一样的。

关于new关键字之前的存在,它只是实例化了一个新的类。当您不使用new关键字时,您只是在谈论类,而使用new关键字时,您正在谈论同一类的对象。

括号不是义务。只有当你想向它的构造函数传递参数时才需要这样做,所以new Backbone.View()new Backbone.View;是相同的,就像new Backbone.View()new Backbone.View.extend({})一样,原因我之前写过。

关于小提琴(http://jsfiddle.net/C2Z34/):

  • myView1是一个扩展View
  • 的类。
  • myView2(在我的小提琴中有括号)是Backbone扩展的类的对象。查看
  • myView3是Backbone的对象。视图类。
  • myView4myView3相同

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