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

// 一.繼承的概述
// - 繼承是和構(gòu)造函數(shù)(類)相關(guān)的一個應(yīng)用
// - 是指,讓一個構(gòu)造函數(shù)去繼承另一個構(gòu)造函數(shù)的屬性和方法
// - 所以繼承一定出現(xiàn)在 兩個構(gòu)造函數(shù)之間
// 1.ES6的繼承 - 最重要的
// 1.1.extends
// Class 可以通過extends關(guān)鍵字實現(xiàn)繼承,讓子類繼承父類的屬性和方法。
// extends 的寫法比 ES5 的原型鏈繼承,要清晰和方便很多。
// 1.2.super
// super這個關(guān)鍵字,既可以當(dāng)作函數(shù)使用,也可以當(dāng)作對象使用。
// 第一種情況,super作為函數(shù)調(diào)用時,代表父類的構(gòu)造函數(shù)。
// 第二種情況,super作為對象時,在普通方法中,指向父類的原型對象;
// 一.借用構(gòu)造函數(shù)繼承 - 混合開發(fā)
// 把父類構(gòu)造函數(shù)體借用過來使用一下而已(只能借到父類構(gòu)造函數(shù)里面的屬性和方法)
// 優(yōu)點是子類不再共享父類的屬性,子類可以進(jìn)行傳參
// 缺點是子類每次實例化的時候,父類的方法都要創(chuàng)建一遍,造成內(nèi)存浪費;
// 一.繼承
// 1.class繼承(使用最多,間接的繼承方式) - extends/super
// 2.借助構(gòu)造函數(shù)繼承(繼承構(gòu)造函數(shù)里面的屬性和方法) - call/apply實現(xiàn)
// 3.拷貝繼承(拷貝原型上面的屬性和方法) - Object.assign
// 4.原型鏈繼承(原型上面的屬性和方法)
// 原型鏈的概念:實例對象與原型(prototype)之間的連接,依靠的是內(nèi)置原型(__proto__)
// 5.組合繼承:將上面的2和4合并
// 5.1.屬性通過借助構(gòu)造函數(shù)繼承
// 5.2.方法通過原型鏈繼承
// 一.寄生組合式繼承
// 開發(fā)人員普遍認(rèn)為寄生組合式繼承是引用類型最理想的繼承范式
// Object.create()這個方法用于創(chuàng)建一個新對象,使現(xiàn)有的對象來提供新創(chuàng)建的對象的__proto__。被創(chuàng)建的對象會繼承另一個對象的原型。