Ext 4ノート


1、クラスの2の定義と3のインスタンス化方式

  
  
  
  
  1. Ext.onReady(function() { 
  2.     // 2  
  3.     Ext.define("person",{ 
  4.         extend : "Ext.data.Model"
  5.         fields:[ 
  6.                 {name:'name',type:'auto'}, 
  7.                 {name:'age',type:'int'}, 
  8.                 {name:'email',type:'auto'
  9.                 ] 
  10.     }); 
  11.      
  12.     Ext.regModel("user",{ 
  13.         fields:[ 
  14.                 {name:'name',type:'auto'}, 
  15.                 {name:'age',type:'int'}, 
  16.                 {name:'email',type:'auto'
  17.                 ] 
  18.     }); 
  19.      
  20.     //instance  
  21.     //method 1 
  22.     var p1 = new persion({ 
  23.         name : 'zhangsan'
  24.         age : 12, 
  25.         email : '[email protected]' 
  26.     }); 
  27.     alert(p1.get('name')); 
  28.     //method 2 
  29.      
  30.     var p2 = Ext.create("persion",{ 
  31.         name : 'zhangsan'
  32.         age : 12, 
  33.         email : '[email protected]' 
  34.     }); 
  35.     alert(p2.get('name')); 
  36.      
  37.     //method 3 
  38.     var p3 = Ext.ModelMgr.create({ 
  39.         name : 'zhangsan'
  40.         age : 12, 
  41.         email : '[email protected]' 
  42.     }); 
  43.     alert(p3.get('email')); 
  44. }); 

2、カスタムクラス、イベントメカニズム

  
  
  
  
  1. Ext.onReady({ 
  2.     Ext.define("children",{ 
  3.         extend : 'Ext.util.Observable'
  4.         constructor : function(){ 
  5.             this.state = "hungry"
  6.             this.setMilk = function(milk){ 
  7.                 this.fireEvent('hungry',milk); 
  8.             }, 
  9.             this.addEvents('hungry':true), 
  10.             this.addListener('hungry',function(milk){ 
  11.                 if(this.state == 'hungry'){ 
  12.                     this.drink(milk); 
  13.                 }else
  14.                     Ext.Msg.alert("no hungry"); 
  15.                 } 
  16.             }), 
  17.             this.drink = function(milk){ 
  18.                 alert("eat one bottle of milk."); 
  19.             } 
  20.              
  21.                  
  22.         } 
  23.     }); 
  24.      
  25.     var children = Ext.create("children",{}); 
  26.     children.setMilk(" "); 
  27. }); 

3、通常のjavascript定義クラスとアクセス権限

  
  
  
  
  1. function user() { 
  2.     //public 
  3.     this.name = 'uspcat'
  4.     this.age = 20; 
  5.     //private 
  6.     var email = "[email protected]"
  7.     // private  
  8.     this.getEmail = function() { 
  9.         return email; 
  10.     } 
  11. var u = new user(); 
  12. alert(u.name); 
  13. alert(u.age); 
  14. alert(u.getEmail());