风华正茂、时光流逝、真爱时光、努力创建辉煌。

【原生】 ES5中的构造函数与 ES6 中的类 及构造函数的理解

 

 

 

 

 

 

// ES6 中的类方法写法
    class Biii {
        constructor() {
            console.log("我是ES6中类的构造函数")
        }
        static jingtai() {
            console.log("ES6 静态方法被调用")
        }
        oko() {
            console.log("ES6 动态方法被调用")
        }
    }

    var b = new Biii()
    b.oko()  //这个是调用的是动态方法 实例化对象.方法名()
    Biii.jingtai()  //这调用的是静态方法  类名.方法名()
    //////////////////////////////////////
// ES5中类的写法
    function Booo() {
        this.name = 88
        this.nn = function () {
            console.log("ES5中方法的写法")
        }
    }
    Booo.yu = function () {
        console.log("ES5中直接给类添加方法5555")
    }
    var h = new Booo()
    console.log(h.name)
    h.nn() //调用的是原型的上的方法
    Booo.yu()  //调用的是类型的方法

  

ES6中继承的理解

 

    class Box { 
        constructor() {  //
            this.a = 5;
        }
        play() {
            this.a++;
            // console.log(this.a);
        }
        die() {
            this.a--;
            // console.log(this.a);
        }
    }


class Ball extends Box {  //这里表示Ball继承了 Box  ,extend是继承的意思
        constructor() {  //constructor 初始化,的时候执行super() 父类执行,
            super();//调用父类的构造函数(富:知道类的顺序:子类-超类-父类-基类)
            this.b = 3;
        }
        // 覆盖超类的方法
        // override(这个是专业单单词)
        die() {
            this.a -= 2;
        }
        play() {
            // 执行超类的play方法
            super.play();//执行 ,就是说调用父类的方法
            this.a++;
        }
        fire() {
            this.b = 0;
            console.log(this.b);
        }
    }

    var c = new Ball();
    // c.play();
    // c.play();
    // c.play();
    // c.die();
    // console.log(c.a);
    c.play();
    console.log(c.a);

总结:
extends 来实现继承
super()来实例父类的方法和属性
super.play() 来调用父类的方法

  

 

posted @ 2019-10-27 16:52  野马,程序源改造新Bug  阅读(257)  评论(0编辑  收藏  举报