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

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

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

    Flyingis

    Talking and thinking freely !
    Flying in the world of GIS !
    隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
    數據加載中……

    JavaScript 中的繼承(下)

    ??? 作者:Flyingis

    ??? Prototype

    ??? 在《JavaScript中的對象(下)》一文中,我們了解到任何prototype的屬性和方法都會被傳遞到該類的所有實例中,利用這一特性,使用prototype也能實現繼承。
    ?
    function ClassA()? {
    }


    ClassA.prototype.id
    =?1998;
    ClassA.prototype.sayId
    =function(){
    ?? alert(
    this.id);
    }
    ;

    functionClassB(){
    }


    ClassB.prototype
    =newClassA();
    ClassB.prototype.name
    ="";
    ClassB.prototype.sayName
    =function(){
    ?? alert(
    this.name);
    }

    ??? 需要注意的是,這種實現繼承的方法不能將參數傳入到ClassA的構造器中,是一個缺陷。ClassB的所有屬性和方法必需在將ClassB的prototype對象指向ClassA的實例之后進行附值。這樣做是因為,prototype指向一個新的對象,在此之前prototype的屬性和方法都被覆蓋銷毀。

    ??? 對代碼進行測試:

    var ?obj1 = new ClassA();
    var ?obj2 = new ClassB();
    obj1.id
    =?1998;
    obj2.id
    =?2000;
    obj2.name
    ="悉尼奧運會";
    obj1.sayId();??
    //輸出"1998"
    obj2.sayId();??//輸出"1998"
    obj2.sayName();??//輸出"悉尼奧運會"

    alert(obj2
    instanceofClassA);??//輸出"true"
    alert(obj2 instanceofClassB);??//輸出"true"

    ??? 在上述代碼中可以看出,使用prototype實現繼承,instanceof操作符出現了另外的用途,在用構造起定義類實現繼承時,instanceof不會出現這種效果。但是使用prototype不能支持多重繼承。
    ??
    ??? 在《JavaScript中的對象(下)》和上文的論述中可以了解到,使用構造器定義類實現繼承和使用prototype實現繼承均存在各自的缺陷,要避免出現這些情況,只有將兩者混合使用。

    ??? 混合方法

    ??? 《JavaScript中的對象(下)》一文中曾經論述,創建一個類的最佳方法,是使用構造器的方法去定義屬性,使用prototype定義方法。在繼承中同樣如此。

    function ClassA(id) {
    ??
    this .id = id;
    }


    ClassA.prototype.sayId
    =?function() {
    ?? alert(
    this.id);
    }
    ;

    function ClassB(id,?name) {
    ?? ClassA.call(
    this,?id);
    ??
    this.name =name;
    }


    ClassB.prototype
    =? new ClassA();
    ClassB.prototype.sayName
    =function(){
    ?? alert(
    this.name);
    }

    posted on 2006-07-15 16:53 Flyingis 閱讀(1557) 評論(0)  編輯  收藏 所屬分類: Web 客戶端技術

    主站蜘蛛池模板: 在线看免费观看AV深夜影院 | 免费人成年激情视频在线观看| 久久久久亚洲av无码专区导航 | 免费在线观看一级毛片| 亚洲色精品三区二区一区| 亚洲AV一二三区成人影片| 一级全免费视频播放| 又粗又硬又黄又爽的免费视频 | 美女视频黄a视频全免费网站色窝| 久久乐国产精品亚洲综合| GOGOGO免费观看国语| 国产AV无码专区亚洲A∨毛片| 免费成人在线视频观看| 久久亚洲国产精品成人AV秋霞| 亚欧在线精品免费观看一区 | 亚洲成av人无码亚洲成av人| 日韩中文字幕免费| 香蕉视频免费在线| 国产精品久久久久免费a∨| 亚洲一级毛片视频| 国产又粗又长又硬免费视频| 一级做a爰片久久毛片免费陪| 国产中文在线亚洲精品官网| 免费视频精品一区二区三区| 亚洲精品中文字幕麻豆| 免费高清小黄站在线观看| 又大又硬又粗又黄的视频免费看| 中文字幕亚洲综合久久菠萝蜜 | 鲁大师在线影院免费观看| 亚洲精品动漫人成3d在线 | 成年女人毛片免费视频| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 国产成人精品男人免费| 一级人做人a爰免费视频| 亚洲精品无码av人在线观看| 97精品免费视频| 国产l精品国产亚洲区在线观看| 无码AV片在线观看免费| 亚洲熟妇无码av另类vr影视| 国产a v无码专区亚洲av| 99爱在线精品视频免费观看9|