ES6中類的靜態方法=> static 的使用

男孩慘遭九名女老師輪流佈置作業發表於2019-01-26

類就是例項的原型,以前我們一般會new一個test(),有在類中(test)定義的方法,都會被例項繼承。如果在一個方法前,加上static關鍵字,就表示該方法不會被例項繼承,而是直接通過類來呼叫,這就稱為“靜態方法”

class Father {
    static testMethod() {
        return 'hello';
    }
}

Father.testMethod() // 'hello'
var Child = new Father();
Child.testMethod()
// TypeError: Child.testMethod is not a function

這是因為Father中的testMethod方法是靜態方法(有static關鍵字),不會被例項化出來的Child繼承,
當前testMethod方發可以直接在Father類上呼叫,如果在例項化出來的類上呼叫會丟擲一個錯誤,表示不存在該方法。
複製程式碼

父類的靜態方法,可以被子類繼承。

class Father {
  static testMethod() {
    return 'hello';
  }
}
class Child extends Father {

}
Child.classMethod(); // 'hello'

上面程式碼中,父類Father有一個靜態方法,子類Child可以呼叫這個方法,因為這是通過extends繼承的,不是通過new()例項化得到的
複製程式碼

結語

前端react QQ群:788023830 ---- React/Redux - 地下老英雄

前端交流 QQ群:249620372 ---- FRONT-END-JS前端

(我們的宗旨是,為了加班,為了禿頂……,仰望大佬),希望小夥伴們加群一起學習

相關文章