1.原型鏈繼承實例化對象的方式
2.原型鏈繼承直接繼承的方式
3.利用空對象作為中介
4.構造函數(shù)的方式蔗崎,主要是call()和apply()
5.混合繼承的方式,將原型鏈和構造函數(shù)兩種方式進行混合
6.拷貝繼承促绵,將父類的prototype直接拷貝給子類
混合方式案例:
function Car() {
? ? ? ? this.lunzi = 4;
? ? ? ? }
? ? ? ?Car.prototype.run = function () {
? ? ? ? document.write(`
? ? ? ? ${this.name}有${this.lunzi}個輪子,會跑賽道`)
? ? ? }
? ? Bc.prototype = new Car();
? ? ? Bc.prototype.contructor = Bc;
? ? ? ? function Bc(name) {
? ? ? ?Car.call(this)
? ? ? this.name = name;
? ? ? ? }
? ? ? ? let a = new Bc('奔馳')
? ? ?a.run()
拷貝繼承案例:
function Car() { };屬性和方法都用原型的方式呈現(xiàn)
? ? ? ? Car.prototype.lunzi = 4;
? ? ? ? Car.prototype.run = function () {
? ? ? ? ? ? document.write(`${this.name}有${this.lunzi}個輪子,會跑賽道`)
? ? ? ? }
? ? ? ? function Bc(name) {
? ? ? ? ? ? this.name = name
? ? ? ? };
? ? ? ? function extend(child, parent) {封裝一個函數(shù)
? ? ? ? ? ? for (let key in parent.prototype) {通過for循環(huán)將父類的prototype的值賦給子類
? ? ? ? ? ? ? ? child.prototype[key] = parent.prototype[key]
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? extend(Bc, Car)
? ? ? ? let bc1 = new Bc('奔馳');
? ? ? ? bc1.run()