摘要:前兩天學(xué)習(xí)繼承的時候搜到了阮大神寫的一篇文章主要講了種構(gòu)造函數(shù)繼承方式我寫此篇文章主要是為了總結(jié)學(xué)習(xí)所得父構(gòu)造器子構(gòu)造器是子構(gòu)造器出來的對象只能繼承父構(gòu)造器中的屬性代表繼承屬性和方法第一種叫構(gòu)造函數(shù)綁定此種繼承方式只能繼承父構(gòu)造器中的屬性不
前兩天學(xué)習(xí)JS繼承的時候,搜到了阮大神寫的一篇文章http://www.ruanyifeng.com/blo...
主要講了5種構(gòu)造函數(shù)繼承方式.我寫此篇文章主要是為了總結(jié)學(xué)習(xí)所得.
父構(gòu)造器Animal,子構(gòu)造器Cat,cat是子構(gòu)造器new出來的對象,"只能繼承父構(gòu)造器中的屬性" 代表繼承屬性和方法.
第一種叫構(gòu)造函數(shù)綁定:
此種繼承方式只能繼承父構(gòu)造器中的屬性,不能繼承父構(gòu)造器原型上的屬性.Animal.apply(this, arguments)也可用Animal.call(this)替換.cat對象有兩個層級,第一級存放著自有屬性以及父構(gòu)造器中的屬性,第二級存放著自己函數(shù)原型上的屬性(Cat.prototype)
第二種叫prototype模式:
此種繼承方式既能繼承父構(gòu)造器中的屬性,也能繼承父構(gòu)造器原型上的屬性.cat對象有三個層級,第一級存放著自有屬性,第二級存放著父構(gòu)造器的屬性(加上constructor,指向創(chuàng)建該對象(cat)的構(gòu)造器(Cat)),第三級存放著父構(gòu)造器原型上的屬性.
第三種叫直接繼承prototype:
此種繼承方式只能繼承父構(gòu)造器原型上的屬性.cat對象有兩個層級,第一級存放著自有屬性,第二級存放著父構(gòu)造器原型上的屬性(加上constructor,指向創(chuàng)建該對象(cat)的構(gòu)造器(Cat)).注意:Cat.prototype.constructor = Cat會將Animal.prototype.constructor也改成Cat,從而影響父構(gòu)造器創(chuàng)建對象
第四種叫空對象作為中介:
此種繼承方式只能繼承父構(gòu)造器原型上的屬性.cat對象有三個層級,第一級存放著自有屬性,第二級存放著臨時構(gòu)造器F的屬性(加上constructor,指向創(chuàng)建該對象(cat)的構(gòu)造器(Cat)),第三級存放著父構(gòu)造器原型上的屬性.注意:臨時構(gòu)造器只充當(dāng)中介的作用,一般不會有自己的屬性.
第五種叫淺拷貝繼承(軟大神稱之為拷貝繼承):
此種繼承方式只能繼承父構(gòu)造器原型上的屬性.cat對象有兩個層級,第一級存放著自有屬性,第二級存放著父構(gòu)造器原型上的除了constructor和__proto__的屬性(不會拷貝原型上的constructor和__proto__屬性).適合父構(gòu)造器原型上的自增屬性為基本數(shù)據(jù)類型的情況.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/81694.html
摘要:由構(gòu)造函數(shù)返回的對象就是表達(dá)式的結(jié)果。如果構(gòu)造函數(shù)沒有顯式返回一個對象,則使用步驟創(chuàng)建的對象。運算符返回一個布爾值,表示對象是否為某個構(gòu)造函數(shù)的實例。 面向?qū)ο?本人能力有限,有誤請斧正 本文旨在復(fù)習(xí)面向?qū)ο?不包含es6) 本文學(xué)習(xí)思維 創(chuàng)建對象的方式,獲取對象屬性 構(gòu)造函數(shù),構(gòu)造函數(shù)的new 做了什么 原型與原型對象 原型鏈 繼承(借用構(gòu)造繼承、原型繼承、組合繼承、寄生組合繼承)...
摘要:特意對前端學(xué)習(xí)資源做一個匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對前端學(xué)習(xí)資源做一個匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點多,可以很快搞定,沒想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補充。有錯誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會及時更新,平時業(yè)務(wù)工作時也會不定期更...
摘要:但是大家了解阮一峰快排事件嗎,是否知道快排的最佳實踐本文從一個爭執(zhí)講起,通過生動詳實的例子讓你真正了解快排。參考文檔快速排序復(fù)雜度分析如何看待文章面試官阮一峰版的快速排序完全是錯的快速排序算法的優(yōu)化思路總結(jié) 只要是個工程師,就或多或少的知道快排,其中很多人都能輕松的寫出一個快排的實現(xiàn)。但是大家了解阮一峰快排事件嗎,是否知道快排的最佳實踐?本文從一個爭執(zhí)講起,通過生動詳實的例子讓你真正了...
摘要:簡介前端發(fā)展迅速,開發(fā)者富有的創(chuàng)造力不斷的給前端生態(tài)注入新生命,各種庫框架工程化構(gòu)建工具層出不窮,眼花繚亂,不盲目追求前沿技術(shù),學(xué)習(xí)框架和庫在滿足自己開發(fā)需求的基礎(chǔ)上,然后最好可以對源碼進(jìn)行調(diào)研,了解和深入實現(xiàn)原理,從中可以獲得更多的收獲隨 showImg(https://segmentfault.com/img/remote/1460000016784101?w=936&h=397)...
摘要:如果該函數(shù)的返回值大于,表示第一個成員排在第二個成員后面其他情況下,都是第一個元素排在第二個元素前面。第三次執(zhí)行,為上一輪的返回值,為第四個成員。第四次執(zhí)行,為上一輪返回值,為第五個成員。 JS中ArrayAPI學(xué)習(xí)筆記 記博客,時?;仡?尤其是面試之先回顧阮一峰標(biāo)準(zhǔn)庫Array對象 1 一些標(biāo)準(zhǔn)庫回顧 showImg(https://segmentfault.com/img/remo...
閱讀 1769·2021-09-23 11:21
閱讀 2454·2021-09-07 10:13
閱讀 903·2021-09-02 10:19
閱讀 1187·2019-08-30 15:44
閱讀 1785·2019-08-30 13:18
閱讀 1964·2019-08-30 11:15
閱讀 1192·2019-08-29 17:17
閱讀 2069·2019-08-29 15:31