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

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

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

    blog.Toby

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      130 隨筆 :: 2 文章 :: 150 評論 :: 0 Trackbacks
    ?

    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模式....
    posted on 2006-03-25 11:16 渠上月 閱讀(209) 評論(0)  編輯  收藏 所屬分類: js tips
    主站蜘蛛池模板: 日本久久久久亚洲中字幕| 免费看国产曰批40分钟| 久久国产亚洲电影天堂| 中文字幕永久免费视频| 四虎影视永久免费观看网址| 亚洲乱人伦中文字幕无码| 亚洲宅男永久在线| 久久久99精品免费观看| 亚洲小视频在线观看| 亚洲成av人无码亚洲成av人| 野花香高清在线观看视频播放免费 | 人人揉揉香蕉大免费不卡| 午夜电影免费观看| 亚洲AV无码成人专区片在线观看| 手机看片国产免费永久| 国产一区二区三区在线免费 | 亚洲精品无码久久一线| 久久成人a毛片免费观看网站| 亚洲专区先锋影音| 99久久综合国产精品免费| 亚洲av色香蕉一区二区三区蜜桃| 永久在线免费观看| 亚洲成A人片在线播放器| 最近中文字幕完整版免费高清| 亚洲精品视频免费看| 日本人的色道www免费一区| 七次郎成人免费线路视频| 久久久综合亚洲色一区二区三区| 亚洲黄色片免费看| 国产一区二区三区亚洲综合 | 亚洲中文字幕无码专区| 久爱免费观看在线网站| 亚洲中文字幕AV在天堂| 69式互添免费视频| 亚洲无人区视频大全| 18禁无遮挡无码国产免费网站| 麻豆狠色伊人亚洲综合网站| 亚洲乱码国产一区网址| 亚洲视频免费在线播放| 日本中文字幕免费看| 国产亚洲视频在线播放|