面向对象继承的方式

1.原型链继承实例化对象的方式

2.原型链继承直接继承的方式

3.利用空对象作为中介

4.构造函数的方式,主要是call()和apply()

5.混合继承的方式,将原型链和构造函数两种方式进行混合

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() { };属性和方法都用原型的方式呈现

        Car.prototype.lunzi = 4;

        Car.prototype.run = function () {

            document.write(`${this.name}有${this.lunzi}个轮子,会跑赛道`)

        }

        function Bc(name) {

            this.name = name

        };

        function extend(child, parent) {封装一个函数

            for (let key in parent.prototype) {通过for循环将父类的prototype的值赋给子类

                child.prototype[key] = parent.prototype[key]

            }

        }

        extend(Bc, Car)

        let bc1 = new Bc('奔驰');

        bc1.run()

你可能感兴趣的:(面向对象继承的方式)