1、class
該方法是類的預設行為,通過new命令省事物件例項時,自動呼叫該方法,乙個類必須有constructor方法,如果沒有顯式,乙個空的constructor方法會被預設新增
class person<2>呼叫該方法: const p = new person(1,2);}
<3>與函式一樣,類也可以使用表示式的形式定義,並且使用表示式定義類之後,這個類的名稱是myclass 而不是myclass了,並且myclass只能在class的內部可以用,指代當前類,
如果內部沒有用到的話,可以省略myclass
const myclass =class myclass<4> 類不存在變數提公升,類必須在使用的之前定義
<5>私有方法可以通過在方法的前面加下劃線來區分,但是這種命名是不保險的,在類的外部,還是可以呼叫到這個方法,也可以通過將私有方法移出模組,因為模組內部的所有方法都是對外可見的,可以通過bar.call(this, baz)來呼叫
<6>私有的屬性的話,是在變數前面新增#
<7>name屬性,返回的是緊跟在class關鍵字後面的類名
p.name //"person"
<8>在類的內部可以使用get和set關鍵字,對摸個屬性設定存值函式和取值函式,攔截該屬性的訪問行為
<9>class的內部只有靜態方法,沒有靜態屬性,因此,類的例項屬性可以用等式,寫入類的定義之中。靜態數次那個的話,就是在例項屬性的前面加乙個static關鍵字
<10>new.target屬性
該屬性一般用在建構函式之中,返回new命令作用於的那個建構函式,如果建構函式不是通過new命令呼叫的,那麼new,.target會返回undefined,因此這個屬性可以用阿里確定建構函式是怎麼呼叫的
<11>class可以通過extends關鍵字來實現繼承
(1)如果是父類繼承父類的時候使用super
比如constructor中呼叫父類的的constructor的時候,在子類的從constructor中使用super(x,y);
(2)父類的靜態方法也可以被子類繼承
(3)super作為函式呼叫的時候(super()),代表父類的建構函式,只能在constructor中使用,super作為物件的時候(super.a()),在普通方法中,指向父類的原型物件,在靜態方法中,指向父類
<11>mixin模式的實現
mixin指的是多個物件合成乙個新的物件,新物件具有各個組成成員的介面
ES6學習筆記
let 塊變數 作用域為塊 const 常亮 作用域為當前塊 解構賦值 例 var x,y 1,2 字元擴充套件 at includes startswith endswith repeat codepointat 模板字串 例 正則的uiy 數值擴充套件 number.isfinite numbe...
ES6學習筆記
常用語法 1 let 與var類似,不同的是let定義的變數有塊級作用域,比如 var a 1 while true alert a 2 用let let a 1 while true alert a 12 const用來定義變數,但是定義之後的值不能再次更改了。乙個實際的用途是用來定義引入的模組,...
ES6學習筆記
var 有變數提公升 let 是塊級作用域,沒有變數提公升 模板語言 還原百分百定義的格式 const 定義常量,特殊情況可以改變值 const b 1 b 2 error const b b.a 2 ok b.c 10 ok object是記憶體位址,位址不變就沒問題 預設值 在不知道接收到個什麼...