Ext.js4.2.1 Ext.define

百聯達發表於2017-08-10
一:描述

define(String className, Object data, Function createdFn): Ext.Base

define方法最多接受3個引數,className(類的名字),data(Object物件),createdFn(回撥函式)
常用於 定義一個類,覆蓋一個類 或者擴充套件一個類的屬性或方法。

二:方法講解

點選(此處)摺疊或開啟

  1. Ext.define("Person", {
  2.             config : {
  3.                 Name : '',
  4.                 Age : 0
  5.             },
  6.             Say : function(msg) {
  7.                 Ext.Msg.alert(this.Name + " Says:", msg);
  8.             },
  9.             constructor : function(config) {
  10.                 this.initConfig(config);
  11.             }
  12.         });

  13.         Ext.define("Animal", {
  14.             Sing : function() {
  15.                 Ext.Msg.alert("Sing", "lalalalalallalalal");
  16.             }
  17.         });

  18.         Ext.define("MyApp.Developer", {
  19.             extend : 'Person',
  20.             mixins : {
  21.                 canSing : 'Animal'
  22.             },
  23.             alias : 'Developer',
  24.             requires : [],
  25.             config : {},
  26.             Coding : function(code) {
  27.                 Ext.Msg.alert(this.Name + " coding", code);
  28.             },
  29.             statics : {

  30.                 test : function(msg) {
  31.                     return "Test " + msg;
  32.                 }
  33.             }
  34.         });

  35.         var Alex = Ext.create("Developer", {
  36.             Name : "Alex",
  37.             Age : 26
  38.         });

  39.         Alex.setAge(33);
  40.         alert(Alex.getAge());
  41.         alert(MyApp.Developer.test('any way!'));
  42.         Alex.Sing();
  43.         Alex.Coding("int i=1;");


1.config
配置項,會呼叫this.initConfig(config)將配置項初始化,每個配置項自動生成4個函式:get,set,reset,apply 

2.extend
 用於類的繼承

3.mixins  
類的混合,和Ext.override 類似。但它不會像override 那樣,覆蓋原有的功能。

4.alias
類的別名

5.requires
ExtJS4的requires是新增的機制,主要是實現非同步載入機制。這樣在不點選對應的按鈕或者選項的時候就不會載入對應的js檔案,提高了載入速度和使用者等待時間。 
requires機制的實現透過一個Ext.Loader.setConfig函式來設定檔案尋找的對映目錄,然後在需要用到對應js檔案的時候使用Ext.require進行載入。 

6.statics
可以在類中定義靜態的方法



三:其它

1.Ext.apply(object,config,[defaults]):Object

該方法包含三個引數,第一個引數是要複製的目標物件,第二個引數是複製的源物件,第三個引數是可選的,表示給目標物件提供一個預設值。可以簡單的理解成把第三個引數(如果有的話)及第二個引數中的屬性複製給第一個引數物件

2.Ext.applyIf(object,config):Object

功能跟apply一樣,只是不會複製那些在目標物件及源物件都存在的屬性

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2143328/,如需轉載,請註明出處,否則將追究法律責任。