Ext源碼分析源碼分析之Ext的繼承模式解說——第一節、類的定義
關鍵字: ext
將Ext的extend繼承,我大不算費很大的口舌來解釋,因為真的很難表達,什麼原型啦,建構函式啦等等拗口的詞彙反而不會協助我們理解,最通俗易懂的莫過於例子了。下面的例子都是模仿Ext的寫法來寫的,非常正軌,都是本人精心斟酌過的,是一種非常好的設計模式,希望大家既然來看了,就耐心品味下,呵呵,歡迎留言交流
下面這個例子我不打算解釋,請您自己思考下
1.Crab = function(){
2. this.leg = 10;
3.};
4.
5.Crab.prototype.say = function(){alert(‘we hava ‘+this.leg+‘ legs‘)};
6.
7.var crabObj = new Crab();
8.
9.crabObj.say();//運行出來的結果就是 ‘we have 10 legs’
引出一種類似與物件導向的設計模式
1.Crab = function(){//類的定義形式!!
2. this.leg = 10;//成員變數!!
3. //成員變數都寫在這裡
4.};
5.
6.Crab.prototype = {
7. say : function(){alert(‘we hava ‘+this.leg+‘ legs‘);}
8. //成員方法都寫這裡
9.};
10.
11.var crabObj = new Crab();
12.
13.crabObj.say();
如果你以前玩過C++,那麼一定非常熟悉了。這種類的定義方式是Ext的基礎所在。
var crabObj = new Crab();其實執行了2個步驟!
第一:執行this.leg = 10,其結果就是crabObj.leg = 10
第二:將Crab.prototype這個對象給了crabObj,好比crabObj.say = Crab.prototype.say;
說白了,第一步交接成員變數,第二步交接成員方法。
還有些朋友喜歡這樣定義類
function Crab(){
this.leg = 10;
}
當然也是可以的
好了,這就是Ext最最普通的類的定義方式了,請接著看第二節《一個簡單的繼承》