千鋒教育JavaScript全套視頻教程(10天學會Js,前端javascrip

/*
了解繼承
發(fā)生在兩個構造函數(shù)之間的
多個構造函數(shù)之間,有共同的屬性或方法,可以去創(chuàng)建一個公共的父類構造函數(shù)
從公共的父類構造函數(shù)上面繼承相關的屬性和方法
怎么從父類繼承?
??(1)原型鏈繼承
??(2)借用構造函數(shù)繼承
????(3)組合繼承
????(4)拷貝繼承
????(5)ES6繼承(class繼承)
*/
/*
原型鏈繼承
把父類的實例化對象賦值給子類的原型對象
優(yōu)點:可以從父類上面繼承所有的方法和屬性
缺點:需要在兩個地方進行傳遞參數(shù)
???子類就沒有自己的原型對象了?如果添加方法,會直接添加到父類的實例化對象里面
*/
/*
借用構造函數(shù)繼承(call繼承)
在子類構造函數(shù)體內(nèi),改變父類構造函數(shù)的this指向
缺點:只能繼承父類構造函數(shù)體內(nèi)的方法,不能繼承原型對象上的方法
優(yōu)點:只需要在一個地方傳遞參數(shù)
*/
/*
組合繼承
原型鏈繼承和借用構造函數(shù)繼承一起使用
???借用構造函數(shù)繼承?繼承父類構造函數(shù)體內(nèi)的方法和屬性,放在子類實例化對象體內(nèi)
???原型鏈繼承主要幫助 繼承父類構造函數(shù)的原型對象中的方法和屬性
優(yōu)點:只需要在一個地方傳參
缺點:子類沒有自己的原型對象 ??
*/
/*
拷貝繼承
在子類構造函數(shù)體內(nèi)進行父類的實例化,得到一個實例化對象
遍歷拷貝到子類的實例化對象體內(nèi)
優(yōu)點:可以繼承父類構造函數(shù)體內(nèi)的方法和屬性,也可以繼承原型對象上面的方法與屬性
???也可以只在一處傳參
*/
/*
ES6繼承(class繼承)
語法:
???class 子類?extends 父類{
constructor(){
super()?//傳遞參數(shù)?必須寫到第一行
? }
???}
*/