Ext中new 和create的區別

2021-08-30 11:04:24 字數 1113 閱讀 9665

1、在ext js 4版本之前,一直使用new關鍵字建立物件,其語法如下:

new classname([config])

其中calssname是指類名;config是可選引數,為類的配置物件(config options),型別為json物件

2、ext.create方法是新增的建立物件的方法,其語法如下:

ext.create(類名,[配置])

其中classname可以是類的全名、別名或備用名;config是可選引數,為類的配置物件(config options),型別為物件。

以上引用自:

ext.create和new 

ext.create為整個例項化提供了更高階別的控制。從ext js 4開始,最好使用它來覆蓋'new'關鍵字,因為它與ext.loader緊密結合,這使得依賴關係解析變得更加容易。在開發過程中,目標類將在第一次使用時自動同步載入,這使您無需事先記住「ext.requireing」。

此外,就像ext.require一樣,ext.create接受類名或別名,這使得通過其xtype / type例項化ext js 4庫中的幾乎所有內容非常方便,而無需事先弄清楚其完整的類名, 例如:

ext.create( 'widget.combobox'); //而不是ext.create('ext.form.field.combobox')ext.create('proxy.jsonp'); //而不是ext.create('ext.data.proxy.jsonp')

除錯更容易。如果你嘗試使用'new'關鍵字例項化乙個不存在的類,那麼很快就要弄清楚「typeerror:undefined不是函式」會發生什麼,例如,嘗試:

new ext.data.proxy.jsond代替

ext.create( 'ext.data.proxy.jsond')

給你:[ext.create] 無法建立無法識別的類名/別名的例項:ext.data.proxy.jsond 

我們在內部對其進行了大量優化,以獲得最佳效能,並且極端基準測試對數千的效能沒有太大影響物件。

ext.create的另乙個強大功能是無法通過'new'關鍵字實現,它可以實現具有可變引數的例項化。例如:

這是不可能的:

new my.classname();

delphi中物件的create和free

在d中每個應用程式可以獲得的記憶體空間分為兩種 堆 heap 和棧 stack 堆又稱為 自由儲存區 其中的記憶體空間的分配與釋放是必須由程式設計師來控制的。例如,用getmem函式獲取了一定大小的記憶體空間,則在使用完後,必須呼叫freemem函式將空間釋放,否則就會發生所謂的 記憶體洩漏 借債還...

內部類中的 this和 new

p.p1 p.p2 p.p3 p.p4 span.s1 span.s2 span.s3 span.s4 span.s5 span.s6 在內部類中,如果要生成對外部類物件的引用,可以使用外部類的名字加.this,如outer.this。如果想要直接建立內部類的物件,可以使用外部類物件加.new,如n...

Java中new和newInstance的區別

1 類的載入方式不同 在執行class.forname a.class.name 時,jvm會在classapth中去找對應的類並載入,這時jvm會執行該類的靜態 段。在使用newinstance 方法的時候,必須保證這個類已經載入並且已經連線了,而這可以通過class的靜態方法forname 來完...