ES6的 class的基本語法


1.類的由來

  JavaScript 語言中,生成實例對象的傳統方法是通過構造函數,但是這種寫法跟傳統的面向對象語言差異很大,容易讓不熟悉這門語言的程序員感到困惑,下面有一個例子

    

 

  ES6提供了更接近傳統語言的寫法,引入了 class(類)這個概念,作為對象的模板,通過class關鍵字,可以定義類,這種寫法只是讓對象原型的寫法更加清晰,更像面向對象編程的語法,下邊這個例子是上邊代碼的升級版,用ES6的 class 改寫

     

 

    使用的時候,也是直接對類使用 new 命令,跟構造函數的用法完全一致

      

 

   構造函數的 prototype 屬性,在 ES6 的“類”上面繼續存在,事實上,類的所有方法都定義在類的prototype睡醒上面

   

2.class 定義類的

  (1)在 class 類上添加的屬性都是在原型 prototype 上添加的

  (2)new 實例的時候其實就是調用構造函數這個方法

  (3)類的本質其實就是一個函數

  (4)類中的this 指向實例對象

  (5)添加的私有屬性都在構造函數中添加

  (6)每個構造方法都會默認返回實例對象this,如果人為改變 return 返回值,返回基本數據類型 字符串、數字、布爾等,不會改變return this 的值;如果返回應引用數據類型 對象 數組,那么return this 就會失效,返回你返回的結果

  (7)靜態方法,在方法名前面加上 static關鍵字

    那么這個方法,就變成了類的私有方法 就得用 類.方法()

     

  (8)extents 繼承

    子類繼承父類  使用extents 關鍵字

    代碼塊里需要使用 super 關鍵字

      super 既可以充當函數,也可以充當對象

      1)  充當函數時,只能在子類的構造函數中使用,且必須放在第一行調用。指向父類的構造函數,只有super調用之后,子類才可以使用 this 關鍵字,指向子類的實例對象

      2)充當對象時,放在普通函數中,super 指向父類的原型 prototype

      3)放在靜態方法中 super 執行當前父類本身

 

 

  

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM