摘要:引言創(chuàng)建即繼承構造函數繼承何為構造函數如果你還不清楚構造函數和普通函數的區(qū)別那請看構造函數與普通函數構造函數繼承構造函數繼承的核心是或的使用通過這個方法改變函數的作用環(huán)境為父類添加方法聲明子類子類通過將子類中的變量在父類中執(zhí)行了一遍由
引言
創(chuàng)建即繼承---構造函數繼承
何為構造函數?如果你還不清楚構造函數和普通函數的區(qū)別,那請看JavaScript構造函數與普通函數
構造函數繼承構造函數繼承的核心 是 call() 或 apply() 的使用,通過這個方法,改變函數的作用環(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,所以父類的原型方法自然不會被子類繼承,而如果想被子類繼承就必須要放在構造函數中,這樣創(chuàng)建出來的每個實例都會多帶帶擁有一份而不能共用,這就違背了代碼復用的原則
下一節(jié)講解 組合繼承 ,它具備上兩種繼承式的優(yōu)點
參考個人博客
JavaScript 設計模式 --- 張容銘 著
注本人對類式繼承的一點點理解,若是那里解釋的有問題,請多指教,謝謝!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/81583.html
摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:那你們肯定會問為什么共用,而沒有共用呢,下面就給你解釋,請看引用類型是共用的值類型是私用的。 引言 面向對象的編程語言都具繼承這一機制,而 JavaScript 是基于原型(Prototype)面向對象程序設計,所以它的實現方式也是基于原型(Prototype)實現的. 繼承的方式 類式繼承 構造函數繼承 組合繼承 原型式繼承 寄生式繼承 寄生組合式繼承 1.類式繼承 //聲明父...
摘要:是完全的面向對象語言,它們通過類的形式組織函數和變量,使之不能脫離對象存在。而在基于原型的面向對象方式中,對象則是依靠構造器利用原型構造出來的。 JavaScript 函數式腳本語言特性以及其看似隨意的編寫風格,導致長期以來人們對這一門語言的誤解,即認為 JavaScript 不是一門面向對象的語言,或者只是部分具備一些面向對象的特征。本文將回歸面向對象本意,從對語言感悟的角度闡述為什...
閱讀 2622·2021-11-24 09:39
閱讀 3319·2021-10-09 09:53
閱讀 1199·2021-09-22 16:06
閱讀 4562·2021-09-02 10:18
閱讀 883·2021-08-23 09:42
閱讀 1853·2021-08-17 10:11
閱讀 2754·2019-08-30 13:02
閱讀 2180·2019-08-30 12:49