Ext繼承模式

來源:互聯網
上載者:User
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最最普通的類的定義方式了,請接著看第二節《一個簡單的繼承》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.