<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Calvin's Tech Space

    成于堅忍,毀于浮躁

       :: 首頁 :: 聯系 :: 聚合  :: 管理

    OO的JavaScript并不高深,麻煩就麻煩在google出來的國人介紹文章經常羅羅嗦嗦,而且之間的說法還各有不同,擺在一起就讓人看了頭大。
    這里重拾簡單主義,以一個最簡單的例子把OO Javascript說明白。

    1.一個頗為精簡的例子

    只需理解三個關鍵字:
    第一個是function ,JS世界里Class的定義用"function",function里面的內容就是構造函數的內容。

    第二個是this指針,代表調用這個函數的對象。

    第三個是prototype,用它來定義成員函數, 比較規范和保險。
    //定義Circle類,擁有成員變量r,常量PI和計算面積的成員函數area()
    function Circle(radius)

        this.r = radius;
    }
    Circle.PI = 3.14159;
    Circle.prototype.area = function(  ) {return Circle.PI * this.r * this.r;}
    //使用Circle類
    var c = new Circle(1.0);  
    alert(c.area());
    另外成員函數定義還可以寫成這樣:
    function compute_area(){return Circle.PI * this.r * this.r;}
    Circle.prototype.area=compute_area;

    2.繼承

    注意兩點
    1.定義繼承關系 ChildCircle.prototype=new Circle(0); 其中0是占位用的
    2.調用父類的構造函數
         this.base=Circle;
         this.base(radius);
    //定義ChildCircle子類
    function ChildCircle(radius)

         this.base=Circle;
         this.base(radius);
    }

    ChildCircle.prototype=new Circle(0);
    function Circle_max(a,b)
    {
        if (a.r > b.r) return a;

        else return b;
    }
    ChildCircle.max = Circle_max;
    //使用ChildCircle子類
    var c = new ChildCircle(1);
    var d = new ChildCircle(2);  
    var bigger = d.max(c,d);
    alert(bigger.area());

    3.var式定義
    JS還支持一種var Circle={raidus:1.0,PI:3.1415}的形式,語法就如CSS的定義。
    因此如果Circle只有一個實例,下面的定義方式更簡潔:
    var newCircle=
    {
    r:1.0,
    PI:3.1415,
    area: function(){ return this.PI * this.r * this.r;}
    };
    alert(newCircle.area());
    BTW.吃飽了撐著可以看看Rails帶的OO Javascript庫--Prototype
    其實,Javascript現在的語法真的不適合那么別扭的寫成OO模式....



    本文轉自 http://calvin.javaeye.com/blog/92013
    posted on 2009-09-10 16:02 calvin 閱讀(193) 評論(0)  編輯  收藏 所屬分類: JavaScript

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费人成视频在线观看免费| 亚洲AV无码片一区二区三区 | 亚洲综合国产一区二区三区| 黄页网址大全免费观看12网站| 日韩精品视频免费网址| 亚洲砖码砖专无区2023| 波多野结衣久久高清免费 | 国产偷伦视频免费观看| 久久亚洲综合色一区二区三区 | 999久久久免费精品播放| 久久久久久亚洲精品成人| 久久精品一本到99热免费| 亚洲精品午夜在线观看| 99久久精品日本一区二区免费| 亚洲国产成人久久77| 免费看美女让人桶尿口| 国产AV无码专区亚洲AV麻豆丫 | 色片在线免费观看| 亚洲日韩精品无码专区 | 久久亚洲高清观看| 1000部啪啪未满十八勿入免费| 亚洲人成7777影视在线观看| 四虎在线免费播放| www免费黄色网| 亚洲综合久久1区2区3区| 女性无套免费网站在线看| 一区二区免费在线观看| 亚洲va在线va天堂va不卡下载| 国产又黄又爽又猛免费app| 国产成人高清亚洲一区91 | 亚洲一级毛片在线播放| 蜜臀91精品国产免费观看| 男女一边桶一边摸一边脱视频免费| 亚洲精品国产精品乱码不卡√| 在线观看成人免费视频不卡| 美女被艹免费视频| 亚洲人成在线影院| 国产免费小视频在线观看| 久久国产精品免费看| 在线观看亚洲专区| 久久亚洲精品成人综合|