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

資訊專欄INFORMATION COLUMN

面向?qū)ο蟮腏avaScript之繼承(二) 構(gòu)造函數(shù)繼承

laoLiueizo / 2873人閱讀

摘要:引言創(chuàng)建即繼承構(gòu)造函數(shù)繼承何為構(gòu)造函數(shù)如果你還不清楚構(gòu)造函數(shù)和普通函數(shù)的區(qū)別那請看構(gòu)造函數(shù)與普通函數(shù)構(gòu)造函數(shù)繼承構(gòu)造函數(shù)繼承的核心是或的使用通過這個方法改變函數(shù)的作用環(huán)境為父類添加方法聲明子類子類通過將子類中的變量在父類中執(zhí)行了一遍由

引言

創(chuàng)建即繼承---構(gòu)造函數(shù)繼承

何為構(gòu)造函數(shù)?如果你還不清楚構(gòu)造函數(shù)和普通函數(shù)的區(qū)別,那請看JavaScript構(gòu)造函數(shù)與普通函數(shù)

構(gòu)造函數(shù)繼承

構(gòu)造函數(shù)繼承的核心 是 call()apply() 的使用,通過這個方法,改變函數(shù)的作用環(huán)境.

function SuperClass(name){
    this.name =name;
    this.book = ["c","java","htnl"]

    this.getBook =function(){
        return this.book;
    }
}

//為父類添加方法
SuperClass.prototype.getName =function(){
    return this.name;
}

//聲明子類
function SubClass(name){
    SuperClass.call(this,name)

}

var a = new SubClass("demongao");
var b = new SubClass("gsc");

a.book.push("cccc");
console.log(a.book,a.name); //["c", "java", "htnl", "cccc"] "demongao"
console.log(b.book,b.name); //["c", "java", "htnl"] "gsc"

console.log(a.getBook()); //["c", "java", "htnl", "cccc"]
console.log(a.getName()) //TypeError

???????子類通過 SuperClass.call(this,name) 將子類中的變量在父類中執(zhí)行了一遍,由于父類中是給 this 綁定屬性的,因此子類自然也就繼承了父類的共有屬性.

???????由于這種類型的繼承沒有涉及原型prototype,所以父類的原型方法自然不會被子類繼承,而如果想被子類繼承就必須要放在構(gòu)造函數(shù)中,這樣創(chuàng)建出來的每個實(shí)例都會多帶帶擁有一份而不能共用,這就違背了代碼復(fù)用的原則

下一節(jié)講解 組合繼承 ,它具備上兩種繼承式的優(yōu)點(diǎn)

參考

個人博客

JavaScript 設(shè)計(jì)模式 --- 張容銘 著

本人對類式繼承的一點(diǎn)點(diǎn)理解,若是那里解釋的有問題,請多指教,謝謝!

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

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

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你對象”還好嗎?

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

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

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

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

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

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

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

    forsigner 評論0 收藏0
  • 面向對象 JavaScript

    摘要:是完全的面向?qū)ο笳Z言,它們通過類的形式組織函數(shù)和變量,使之不能脫離對象存在。而在基于原型的面向?qū)ο蠓绞街?,對象則是依靠構(gòu)造器利用原型構(gòu)造出來的。 JavaScript 函數(shù)式腳本語言特性以及其看似隨意的編寫風(fēng)格,導(dǎo)致長期以來人們對這一門語言的誤解,即認(rèn)為 JavaScript 不是一門面向?qū)ο蟮恼Z言,或者只是部分具備一些面向?qū)ο蟮奶卣?。本文將回歸面向?qū)ο蟊疽猓瑥膶φZ言感悟的角度闡述為什...

    novo 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<