[英]Understanding Backbone.View
人們在很多方面使用Backbone.View
,我有點困惑。 我見過:
Backbone.View.extend({});
new Backbone.View.extend({});
new Backbone.View();
new Backbone.View;
前三個是不同的 。 最后兩個是相同的。 (請參閱此處獲取小提琴。)每種情況都會發生什么?
這都是一回事。
當您使用Backbone.View.extend({})
,如您所見,您不會向您的類添加任何aditional屬性或方法。 你傳給它一個空的hash {}
作為參數。 因此, 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
相同 Extend創建一個子類。 在您的示例中,您不添加任何自定義代碼,因此視圖類的行為與原始主干視圖完全相同。 使用new關鍵字,可以調用類的構造函數,該函數返回視圖的實例。 因此,如果您想在視圖中擁有自定義代碼,例如。 使用渲染功能可以擴展BB視圖。 然后,當您要使用此視圖時,您將創建擴展視圖的新實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.