美文网首页
ES6(类)

ES6(类)

作者: KATENGC | 来源:发表于2020-04-29 14:25 被阅读0次
    一、类的基本定义和生成实例
    {
        // 基本定义和生成实例
        class Parent {
            constructor(name = 'parent') {
                this.name = name;
            }
        }
    
        // 创建类的实例
        let v_parent = new Parent('v');
        console.log('构造函数和实例', v_parent);
    }
    
    二、继承
    {
        // 继承 通过extends关键字
        class Parent {
            constructor(name = 'parent') {
                this.name = name;
            }
        }
    
        class Child extends Parent {
        }
    
        console.log('继承', new Child());
    }
    
    三、继承传递参数

    在子类中利用super(),将参数传递进去可覆盖父类中的值

    {
        // 继承传递参数
        class Parent {
            constructor(name = 'parent') {
                this.name = name;
            }
        }
    
        class Child extends Parent {
            constructor(name = 'child') {
                //将子类的name传递进去,覆盖父类中的name
                // 注意:super要放在第一行
                super(name);
                this.type = 'child type'
            }
        }
    
        console.log('继承传递参数', new Child());
    }
    
    四、类的getter setter方法
    {
        // getter setter
        class Parent {
            constructor(name = 'parent') {
                this.name = name;
            }
    
            get longName() {
                return 'mk' + this.name;
            }
    
            set longName(value) {
                this.name = value;
            }
        }
    
        let v = new Parent();
        console.log('getter', v.longName);
    
        v.longName = 'hello';
        console.log('setter', v.longName);
    }
    
    五、静态方法 static

    静态方法:通过static修饰的方法

    {
        // 静态方法 static
        class Parent {
            constructor(name = 'parent') {
                this.name = name;
            }
    
            static tell() {
                console.log('tell');
            }
    
        }
    
        // 静态方法 只能通过类调用,不能通过类的实例去调用
        Parent.tell();
    
        //以下这种写法不正确
        // let v=new Parent();
        // v.tell();
    }
    
    六、静态属性
    {
        // 静态属性
        class Parent {
            constructor(name = 'parent') {
                this.name = name;
            }
    
            static tell() {
                console.log('tell');
            }
        }
    
        //直接在类上定义,通过这种方式实现静态属性
        Parent.type = 'test';
        //读取时,直接调用Parent.type
        console.log('静态属性', Parent.type);
    }
    

    相关文章

      网友评论

          本文标题:ES6(类)

          本文链接:https://www.haomeiwen.com/subject/ikwgwhtx.html