簡體   English   中英

了解Backbone.View

[英]Understanding Backbone.View

人們在很多方面使用Backbone.View ,我有點困惑。 我見過:

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

前三個是不同的 最后兩個是相同的。 (請參閱此處獲取小提琴。)每種情況都會發生什么?

這都是一回事。

當您使用Backbone.View.extend({}) ,如您所見,您不會向您的類添加任何aditional屬性或方法。 你傳給它一個空的hash {}作為參數。 因此, 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相同

Extend創建一個子類。 在您的示例中,您不添加任何自定義代碼,因此視圖類的行為與原始主干視圖完全相同。 使用new關鍵字,可以調用類的構造函數,該函數返回視圖的實例。 因此,如果您想在視圖中擁有自定義代碼,例如。 使用渲染功能可以擴展BB視圖。 然后,當您要使用此視圖時,您將創建擴展視圖的新實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM