1 回答

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
題主:代碼可以再捋一捋
Child.prototype=Parent.prototype // Parent.prototype指向的是Object
Child.prototype=Parent //該是這樣吧
第一個(gè)問(wèn)題:this
不能獲得構(gòu)造函數(shù)Parent
的原型
function Child()
定義一個(gè)函數(shù),使用var c = new Child()
this的指向?yàn)閷?duì)象c
,就沒(méi)指向Parent
,不過(guò)你使用c.showName()
,還是能獲取到的,因?yàn)?code>原型繼承.
第二個(gè)問(wèn)題:寫(xiě)在Child
函數(shù)里不行,為什么拿出來(lái)寫(xiě)在window
環(huán)境就可以?
寫(xiě)在函數(shù)里面也行的,
this.prototype=Parent
;
一個(gè)new
做了以下幾件事情:
創(chuàng)建一個(gè)新的對(duì)象
查找
Child
的prototype
上的所有方法、屬性,復(fù)制一份給創(chuàng)建的對(duì)象將構(gòu)造函數(shù)
Child
內(nèi)部的this
指向創(chuàng)建的對(duì)象創(chuàng)建的對(duì)象的
__proto__
指向Child
的prototype
執(zhí)行構(gòu)造函數(shù)
返回新創(chuàng)建的對(duì)象給變量c
寫(xiě)在內(nèi)部就是在第五部寫(xiě)入,寫(xiě)在外部是在第四部寫(xiě)入,故與內(nèi)外無(wú)關(guān)。
添加回答
舉報(bào)