js繼承 阮一峰 JS原型鏈繼承和類(lèi)繼承各有什么優(yōu)缺點(diǎn)?
JS原型鏈繼承和類(lèi)繼承各有什么優(yōu)缺點(diǎn)?我通常用這個(gè):意思是它不涉及函數(shù)構(gòu)造,拋棄了“類(lèi)”的感覺(jué),因?yàn)镴S沒(méi)有類(lèi)、繼承等概念,它只有對(duì)象,可以串成一個(gè)原型鏈。當(dāng)對(duì)象找不到屬性時(shí),它將借用原型鏈上的對(duì)象。
JS原型鏈繼承和類(lèi)繼承各有什么優(yōu)缺點(diǎn)?
我通常用這個(gè):
意思是它不涉及函數(shù)構(gòu)造,拋棄了“類(lèi)”的感覺(jué),因?yàn)镴S沒(méi)有類(lèi)、繼承等概念,它只有對(duì)象,可以串成一個(gè)原型鏈。當(dāng)對(duì)象找不到屬性時(shí),它將借用原型鏈上的對(duì)象。這不是父子關(guān)系,也不是類(lèi)實(shí)例關(guān)系,而是水平關(guān)系。我認(rèn)為這有助于我理解語(yǔ)言的本質(zhì),避免一些晦澀難懂的錯(cuò)誤。用一個(gè)函數(shù)作為構(gòu)造函數(shù),然后用它的prototype屬性一個(gè)接一個(gè)地建立連接,我們繞道而行。毋庸諱言,函數(shù)本身不是構(gòu)造函數(shù),它模擬的“類(lèi)”與真實(shí)的類(lèi)有很大的不同,它的“繼承”和“實(shí)例化”等行為根本不意味著這一點(diǎn)。