深入es6之class

es5定義一個類

function Parent(x) {
  // 實例屬性(構造函數屬性)
    this.x = x
}
var p =new Parent('歐富華')
console.log(p.x) // 歐富華

es6定義一個類

class Parent {
    constructor(x) {
 // 實例屬性(構造函數屬性)
        this.x = x
    }
}
var p =new Parent('歐富華')
console.log(p.x) // 歐富華

es6原型方法(內部this是實例化的類)


class Parent {
    // 實例屬性
    constructor(x) {
        this.x = x
    }

    // 原型(prototype)方法
    getX() {
        return this.x
    }

    // es6 獲取值
    get loop() {
        return 'loop'
    }

    // es6 設置值
    set setLoop(value) {
        this.b = value
    }

    // 靜態(tài)方法
    static loop() {
        return '我是靜態(tài)方法'
    }
}

let p = new Parent('歐富華')
console.log(p.getX(), p.loop)  // 歐富華,loop

靜態(tài)方法(內部this是類)

 class Parent {
        // 原型方法
        l() {
            // this是實例的類
            console.log('我是原型方法')
        }

        static loop() {
            // this是Parent
            // this.l()  報錯
            this.a() // 成功
            console.log('我是靜態(tài)方法')
        }

        static a() {
            console.log('我是靜態(tài)方法')
        }
    }
    // 調用不需要實例化
    Parent.loop() // 我是靜態(tài)方法(輸出2次)

繼承

   class Parent {
        constructor(x) {
            this.x = x
        }

        // 原型方法
        l() {
            // this是實例的類
            console.log('我是原型方法')
            return '2'
        }

        static loop() {
            // this是Parent
            // this.l()  報錯
            this.a() // 成功
            console.log('我是靜態(tài)方法')
        }

        static a() {
            console.log('我是靜態(tài)方法')
        }
    }

    // 調用不需要實例化
    Parent.loop() // 我是靜態(tài)方法(輸出2次)
    Parent.a = 1

    // 繼承會把父類的原型屬性和靜態(tài)屬性都會繼承
    class Child extends Parent {
        constructor(x, type) {
            // 繼承屬性,必須要
            super(x)
            // 新增子類屬性
            this.type = type
        }
        list(){
            console.log(super.l()) // 調用父類的方法
        }
    }

    let child = new Child()
    child.list() // 2

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容