原型
1纬黎、在JavaScript中,我們創(chuàng)建一個(gè)函數(shù)A(就是聲明一個(gè)函數(shù)), 那么瀏覽器就會在內(nèi)存中創(chuàng)建一個(gè)對象B拆座,而且每個(gè)函數(shù)都默認(rèn)會有一個(gè)屬性 prototype 指向了這個(gè)對象( 即:prototype的屬性的值是這個(gè)對象 )诈泼。這個(gè)對象B就是函數(shù)A的原型對象,簡稱函數(shù)的原型岖赋。這個(gè)原型對象B 默認(rèn)會有一個(gè)屬性 constructor 指向了這個(gè)函數(shù)A ( 意思就是說:constructor屬性的值是函數(shù)A )瓮孙。
2选脊、“原型對象”是核心概念脸甘。原型對象是新對象的模板,它將自身的屬性共享給新對象钝的。一個(gè)對象不但可以享有自己創(chuàng)建時(shí)和運(yùn)行時(shí)定義的屬性铆遭,而且可以享有原型對象的屬性。
3碗脊、每一個(gè)對象都有自己的原型對象橄妆,所有對象構(gòu)成一個(gè)樹狀的層級系統(tǒng)。root節(jié)點(diǎn)的頂層對象是一個(gè)語言原生的對象矢劲,只有它沒有原型對象蛮原,其他所有對象都直接或間接繼承它的屬性另绩。
繼承
是一個(gè)對象直接使用另外一個(gè)對象的屬性和方法
????此時(shí)我想創(chuàng)建一個(gè)Teacher類蹦漠,我希望它可以繼承Person所有的屬性车海,并且額外添加屬于自己特定的屬性;
屬性的繼承是通過在一個(gè)類內(nèi)執(zhí)行另外一個(gè)類的構(gòu)造函數(shù)研铆,通過call指定this為當(dāng)前執(zhí)行環(huán)境州叠,這樣就可以得到另外一個(gè)類的所有屬性。
方法如何繼承咧栗?