类的基本定义和生成实例:

    class Parent{
        //定义构造函数 constructor 方法
        constructor(name='课程'){
            this.name = name;
        }
    }
    //生成实例
    let parent1 = new Parent('慕课网');
    console.log(parent1)//Parent {name: "慕课网"}

 继承:

    class Parent{
        //定义构造函数 constructor 方法
        constructor(name='旺财',sex = '男'){
            this.name = name;
            this.sex = sex;
        }
    }
    console.log(new Parent())//Parent {name: "旺财", sex: "男"}
    class Child extends Parent{
        constructor(name = '如花',sex='女',age = 15){
            super(name)//指定子类的默认参数不沿用父类的默认参数 若为空则所有默认参数都沿用父类的默认参数
            this.age = age;
        }
    }
    console.log(new Child())//Child {name: "child", sex: "男", age: 15}
    console.log(new Child('小强',undefined,18))//Child {name: "小强", sex: "男", age: 18}

 get和set的基本用法:

    class Parent{
        //定义构造函数 constructor 方法
        constructor(name='旺财',sex = '男'){
            this.name = name;
            this.sex = sex;
        }
        get longName(){
            return this.name
        }
        set longName(value){
            this.name = value;
        }
    }
    let v = new Parent();
    console.log(v.longName)//旺财
    v.longName = '小强';
    console.log(v.longName)//小强

类的静态方法: 

    class Parent{
        constructor(name='mukewang'){
            this.name=name;
        }
        static tell(){  // 静态方法  关键字static
            console.log('tell');
        }
    }
    Parent.tell(); // tell      由类直接调用静态方法

静态属性: 

    class Parent{
        constructor(name='mukewang'){
            this.name=name;
        }
        static tell(){
            console.log('tell');
        }
    }
    Parent.type='test';//直接定义静态属性
    console.log('静态属性',Parent.type); //静态属性 test
02-01 01:34