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

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

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

    邊城愚人

    如果我不在邊城,我一定是在前往邊城的路上。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      31 隨筆 :: 0 文章 :: 96 評論 :: 0 Trackbacks
    ??? 實現JavaScript繼承的最簡單的方式是call方法(或者apply方法)及原型鏈方法,但這兩種方法都有缺陷,而其混合體就是很好的繼承實現方式。下面舉例說明:
    function?Animal(age){
    ????
    this.age?=?age;
    }

    Animal.prototype.sayAge?
    =?function(){
    ????window.alert(
    "My?age?is?"+this.age+"!");
    };

    function?Dog(age,name){
    ????Animal.call(
    this,age);
    ????
    this.name?=?name;
    }
    Dog.prototype?
    =?new?Animal();
    Dog.prototype.sayName?
    =?function(){
    ????window.alert(
    "I?am?a?"+this.name+"!");
    };

    var?dog?=?new?Dog(15,"dog");
    dog.sayName();
    dog.sayAge();
    ??? 對于類Animal來說,它有一個字段屬性age及函數屬性sayAge,sayAge方法的定義采用的是原型方式。Dog類要繼承Animal,其字段屬性除了age外還有name,通過Animal.call(this,age);可以實現Dog繼承Animal的字段屬性age并將其初始化了。call方法的第一個參數為繼承的類的this指針,第二個參數為Animal類的構造函數的參數。實際上,只是通過call方法就可以實現繼承,但唯一的要求是父類的函數屬性要在構造函數中定義,這對于這里的函數屬性使用原型方式定義來說就不適合了(采用原型方式定義函數屬性比在構造函數內定義更直觀一些)。要想繼承Animal的原型方式定義的函數屬性,需要的語句就是“Dog.prototype?=?new?Animal();”。而Dog類中的sayName()函數則是其自身的函數屬性了。
    ??? 除了這個最經典的實現繼承的方式外,目前還有一些免費的庫可供使用。但想到形形色色的庫,頭就大了,有時間有必要時再研究吧!
    posted on 2007-04-08 21:11 kafka0102 閱讀(1483) 評論(0)  編輯  收藏 所屬分類: Ajax
    主站蜘蛛池模板: 国产亚洲精品国看不卡| 真人无码作爱免费视频| 久久久久久久久久免免费精品| 成人性生交大片免费看午夜a| 亚洲日韩中文字幕天堂不卡| 99精品视频在线观看免费专区 | 亚洲精品国产福利在线观看| 二个人看的www免费视频| 久久亚洲高清综合| 一级人做人a爰免费视频| 国产一级淫片a免费播放口之 | 中国性猛交xxxxx免费看| 亚洲人成电影网站国产精品 | 亚洲免费观看视频| 你是我的城池营垒免费观看完整版| 在线播放亚洲第一字幕| 两性色午夜免费视频| 亚洲综合另类小说色区| 免费在线观影网站| 婷婷久久久亚洲欧洲日产国码AV | 黄页网址大全免费观看12网站| 免费无码成人AV片在线在线播放| 亚洲中文无码mv| 免费又黄又爽的视频| 国产性生大片免费观看性| 亚洲精品白浆高清久久久久久| 97在线免费观看视频| 久久丫精品国产亚洲av不卡 | 在线观看人成视频免费无遮挡| 国产亚洲成av人片在线观看| 久久久久久久99精品免费| 亚洲综合久久成人69| 18禁成年无码免费网站无遮挡| 亚洲精品国产av成拍色拍| 波多野结衣免费视频观看| 男女一边摸一边做爽的免费视频 | 亚洲伊人久久综合影院| 中文在线免费视频| 久久久久久亚洲精品成人| 国产成人免费高清激情视频| 欧洲亚洲国产精华液|