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

資訊專欄INFORMATION COLUMN

【JavaScript】面向?qū)ο笾^承

sewerganger / 2593人閱讀

摘要:一繼承原型式繼承定義臨時構(gòu)造函數(shù),作為參數(shù)傳入對象作為著構(gòu)造函數(shù)原型,并最后返回該構(gòu)造函數(shù)的實例對象定義一個臨時構(gòu)造函數(shù)遍歷對象屬性和方法將函數(shù)參數(shù)作為函數(shù)的原型姜構(gòu)造函數(shù)創(chuàng)造的對象進行返回犬夜叉借助構(gòu)造函數(shù)無論是原型鏈還是原型式繼承,都有

JS(JavaScript)

一.繼承
1.原型式繼承
定義臨時構(gòu)造函數(shù),作為參數(shù)傳入對象作為著構(gòu)造函數(shù)原型,并最后返回該構(gòu)造函數(shù)的實例對象

function Fun(obj,poap) {
    function Fun() {
        //定義一個臨時構(gòu)造函數(shù)
        for(var attrNome in porp){
           //遍歷對象屬性和方法
           this[attrNome] = porp[attrNome]
        }
    }
    Fun.prototype = obj;
    //將函數(shù)參數(shù)作為函數(shù)的原型
    return new Fun();
    //    姜構(gòu)造函數(shù)創(chuàng)造的對象進行返回
}
var obj = {
    name : "犬夜叉"
}
var result = fn(obj,{
    age : 16,
    sayMe : function () {
        console.log("you my function")
    }
});
console.log(result.age);
result.sayMe();

2.借助構(gòu)造函數(shù)
無論是原型鏈還是原型式繼承,都有相同的問題,可借助構(gòu)造函數(shù)
子對象構(gòu)造函數(shù)種調(diào)用父對象構(gòu)造函數(shù),可通過調(diào)用
apply()和call()方法實現(xiàn)
apply()和cal()方法都準許傳遞對象this,可實現(xiàn)子對象構(gòu)造函數(shù)種調(diào)用父對象構(gòu)造函數(shù)時,將子對象this和父對象this捆綁在一起

function Parent() {
//定義父級對象的構(gòu)造函數(shù)
    this.parent = "parent";
}
function call() {
//定義子級對象構(gòu)造函數(shù)-使用apply()或call()方法
    Parent.call(this);
    this.child = "child";
}
var child = new Child();
console.log(child);

3.組合方式繼承
也叫為經(jīng)典繼承,將原型鏈或原型式繼承和借助構(gòu)造函數(shù)技術(shù)組合在一起,引發(fā)其兩種函數(shù)的一種繼承方式

使用原型鏈和原型式繼承實現(xiàn)對原型屬性和方法繼承

通過借助構(gòu)造函數(shù)實現(xiàn)對實例對象屬性的繼承

function Parent() {
    this.name = "犬夜叉"
//    構(gòu)造函數(shù)點1自有屬性
}

Parent.prototype.age = 16;
//構(gòu)造函數(shù)的原型屬性

function child() {
    parent.call();
    //繼承父級構(gòu)造函數(shù)中自有屬性
    this.job = "妖狐"
}
Child.prototype = parent.prototype;

var child = new Child();

console.log(child.job);
console.log(child.age);
console.log(child.name);

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

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

相關(guān)文章

  • javascript面向對象“多態(tài)”

    摘要:之前,本質(zhì)上不能算是一門面向?qū)ο蟮木幊陶Z言,因為它對于封裝繼承多態(tài)這些面向?qū)ο笳Z言的特點并沒有在語言層面上提供原生的支持。所以在中出現(xiàn)了等關(guān)鍵字,解決了面向?qū)ο笾谐霈F(xiàn)了問題。 ES6之前,javascript本質(zhì)上不能算是一門面向?qū)ο蟮木幊陶Z言,因為它對于封裝、繼承、多態(tài)這些面向?qū)ο笳Z言的特點并沒有在語言層面上提供原生的支持。但是,它引入了原型(prototype)的概念,可以讓我們以...

    JerryWangSAP 評論0 收藏0
  • 面向對象JavaScript繼承(一) 類式繼承

    摘要:那你們肯定會問為什么共用,而沒有共用呢,下面就給你解釋,請看引用類型是共用的值類型是私用的。 引言 面向?qū)ο蟮木幊陶Z言都具繼承這一機制,而 JavaScript 是基于原型(Prototype)面向?qū)ο蟪绦蛟O(shè)計,所以它的實現(xiàn)方式也是基于原型(Prototype)實現(xiàn)的. 繼承的方式 類式繼承 構(gòu)造函數(shù)繼承 組合繼承 原型式繼承 寄生式繼承 寄生組合式繼承 1.類式繼承 //聲明父...

    forsigner 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    Lyux 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    AaronYuan 評論0 收藏0

發(fā)表評論

0條評論

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