es6-13 类与对象

基本语法

{
    // 基本定义和生成实例
    class Parent {
        // 定义构造函数
        constructor (name = 'LiMing') {
            this.name = name
        }
    }

    // 生成实例
    let parent = new Parent('Helzeo')
    console.log(parent) // {name: "Helzeo"}
}

类的继承

{
    // 基本定义和生成实例
    class Parent {
        // 定义构造函数
        constructor (name = 'LiMing') {
            this.name = name
        }
    }

    // 生成实例
    let parent = new Parent('Helzeo')
    console.log(parent) // {name: "Helzeo"}

    // 类的继承
    class Child extends Parent {
        constructor (name = 'child name') {
            super(name) // 子类覆盖父类 super 必须要放在第一行
            // 子类定义自身属性和方法一定要在 super 之后
            this.type = 'child'
        }
    }
    let child = new Child('chile param')
    console.log(child)
}

getter 和 setter

{
    // getter 和 setter
    class Parent {
        // 定义构造函数
        constructor (name = 'LiMing') {
            this.name = name
        }

        get longName() { // 注意这里是属性, 不是方法
            return this.name + 'Lee'
        }

        set longName(value) { // 注意这里是属性, 不是方法
            this.name = value
        }
    }

    let parent = new Parent()
    console.log('getter', parent.longName) // LiMingLee
    parent.longName = 'Helzeo'
    console.log('setter', parent.longName) // HelzeoLee
}

静态方法 static

{
    // 静态方法 关键字 static
    class Parent {
        // 定义构造函数
        constructor (name = 'LiMing') {
            this.name = name
        }

        // 静态方法, 通过类来调用, 而不是实例来调用
        static tell() {
            console.log('tell')
        }
    }
    Parent.tell()
}

静态属性

{
    // 静态方法 关键字 static
    class Parent {
        // 定义构造函数
        constructor (name = 'LiMing') {
            this.name = name
        }
    }
    // 定义静态属性没有关键字, 直接在类上赋值即可
     Parent.type = 'test'
     console.log('静态属性', Parent.type)
}
原文地址:https://www.cnblogs.com/helzeo/p/11822776.html