成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript實(shí)現(xiàn)類與繼承的方法(全面整理)

Near_Li / 1542人閱讀

摘要:定義類的種方法工廠方法構(gòu)造函數(shù)方法原型方法大家可以看到這種方法有缺陷,類里屬性的值都是在原型里給定的。組合使用構(gòu)造函數(shù)和原型方法使用最廣將構(gòu)造函數(shù)方法和原型方法結(jié)合使用是目前最常用的定義類的方法。

JavaScript定義類的4種方法 工廠方法
function creatPerson(name, age) {
            
    var obj = new Object();

    obj.name = name;
    obj.age = age;

    obj.sayName = function() {
        window.alert(this.name);
    };
            
    return obj;
}
構(gòu)造函數(shù)方法
function Person(name, age) {

    this.name = name;
    this.age = age;

    this.sayName = function() {
        window.alert(this.name);
    };
}
原型方法
function Person() {
        
}
        
Person.prototype = {
    constructor : Person,
    name : "Ning",
    age : "23",
    sayName : function() {
        window.alert(this.name);
    }
};

大家可以看到這種方法有缺陷,類里屬性的值都是在原型里給定的。

組合使用構(gòu)造函數(shù)和原型方法(使用最廣)
function Person(name, age) {
    this.name = name;
    this.age = age;
}
        
Person.prototype = {
    constructor : Person, 
    sayName : function() {
        window.alert(this.name);
    }
};

將構(gòu)造函數(shù)方法和原型方法結(jié)合使用是目前最常用的定義類的方法。這種方法的好處是實(shí)現(xiàn)了屬性定義和方法定義的分離。比如我可以創(chuàng)建兩個(gè)對象person1person2,它們分別傳入各自的name值和age值,但sayName()方法可以同時(shí)使用原型里定義的。

JavaScript實(shí)現(xiàn)繼承的3種方法 借用構(gòu)造函數(shù)法(又叫經(jīng)典繼承)
function SuperType(name) {

    this.name = name;

    this.sayName = function() {
        window.alert(this.name);
    };
}
        
function SubType(name, age) {

    SuperType.call(this, name); //在這里借用了父類的構(gòu)造函數(shù)

    this.age = age;
}
對象冒充
function SuperType(name) {

    this.name = name;
    
    this.sayName = function() {
        window.alert(this.name);
    };
}
        
function SubType(name, age) {

    this.supertype = SuperType; //在這里使用了對象冒充
    this.supertype(name);

    this.age = age;
}
組合繼承(最常用)
function SuperType(name) {

    this.name = name;

}
        
SuperType.prototype = {
        
    sayName : function() {
        window.alert(this.name);
    }
};
        
function SubType(name, age) {
    
    SuperType.call(this, name); //在這里繼承屬性
    this.age = age;
}

SubType.prototype = new SuperType(); //這里繼承方法

組合繼承的方法是對應(yīng)著我們用‘組合使用構(gòu)造函數(shù)和原型方法’定義父類的一種繼承方法。同樣的,我們的屬性和方法是分開繼承的。

總結(jié)

以上就是常見的JavaScript中面向?qū)ο缶幊痰膸追N實(shí)現(xiàn),歡迎大家補(bǔ)充與指正。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107389.html

相關(guān)文章

  • 50道JavaScript基礎(chǔ)面試題(附答案)

    摘要:事件中屬性等于。響應(yīng)的狀態(tài)為或者。同步在上會產(chǎn)生頁面假死的問題。表示聲明的變量未初始化,轉(zhuǎn)換為數(shù)值時(shí)為。但并非所有瀏覽器都支持事件捕獲。它由兩部分構(gòu)成函數(shù),以及創(chuàng)建該函數(shù)的環(huán)境。 1 介紹JavaScript的基本數(shù)據(jù)類型Number、String 、Boolean 、Null、Undefined Object 是 JavaScript 中所有對象的父對象數(shù)據(jù)封裝類對象:Object、...

    huaixiaoz 評論0 收藏0
  • php面向?qū)ο笤斀?/b>

    摘要:前言自從進(jìn)入版本以來,開始全面地支持面向?qū)ο缶幊?。好了,進(jìn)入正題,面向?qū)ο蟮娜筇匦苑謩e是封裝性,繼承性以及多態(tài)性,使用面向?qū)ο箝_發(fā),讓我們的程序可維護(hù)以及擴(kuò)展性大大提高。 showImg(https://segmentfault.com/img/remote/1460000012257579?w=1920&h=1080); 前言 自從php進(jìn)入5.0版本以來,PHP開始全面地支持面向...

    xingpingz 評論0 收藏0
  • javascript類與繼承

    摘要:的類與繼承的類與一般的面向?qū)ο笳Z言有很大的不同,類的標(biāo)識是它的構(gòu)造函數(shù),下面先定義一個(gè)類顯然我們可以看出這兩個(gè)函數(shù)是不同的,雖然它們實(shí)現(xiàn)了相同的功能。利用構(gòu)造函數(shù)來繼承上面的方法子類顯然無法繼承父類的原型函數(shù),這樣不符合我們使用繼承的目的。 javascript的類與繼承 javascript的類與一般的面向?qū)ο笳Z言有很大的不同,類的標(biāo)識是它的構(gòu)造函數(shù),下面先定義一個(gè)類 var ...

    impig33 評論0 收藏0
  • 談?wù)勎覍γ嫦驅(qū)ο笠约?em>類與對象理解

    showImg(https://segmentfault.com/img/remote/1460000007103938?w=391&h=247); 文章最初發(fā)表于我的個(gè)人博客非典型性程序猿 對于剛接觸JAVA或者其他面向?qū)ο缶幊陶Z言的朋友們來說,可能一開始都很難理解面向?qū)ο蟮母拍钜约邦惡蛯ο蟮年P(guān)系。筆者曾經(jīng)帶過一個(gè)短期培訓(xùn)班教授java入門基礎(chǔ),在最后結(jié)束課程的時(shí)候,還有很多同學(xué)不太理解面向?qū)ο?..

    walterrwu 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.40 - 2018,來學(xué)習(xí)一門新編程語言吧!

    摘要:入門,第一個(gè)這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運(yùn)行在之上。它通過編輯類工具,帶來了先進(jìn)的編輯體驗(yàn),增強(qiáng)了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...

    caspar 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<