ES6函式學習雜記
阿新 • • 發佈:2018-12-19
-
將現有的"普通"函式轉換為箭頭函式只需幾步:刪掉關鍵字
function -》
刪掉圓括號 -》 刪掉左右花括號 -》 刪掉關鍵字return
-》 刪掉分號 -》 在引數列表和函式主體之間新增一個箭頭(=>
) -
普通函式可以是函式宣告或函式表示式,但是箭頭函式始終是表示式。因此僅在表示式有效時才能使用:儲存在變數中、當做引數傳遞給函式、儲存在物件的屬性中
-
如果列表中有兩個或多個引數,或者有零個,則需要將引數列表放在圓括號內
-
箭頭函式使用周圍上下文判斷它裡面的
this
指的是什麼 -
函式提供了預設函式引數;可與解構結合
-
與陣列預設值相比,物件預設值具備的一個優勢是能夠處理跳過的選項
-
類
//ES5寫法 function Plane(numEngines) { this.numEngines = numEngines; this.enginesActive = false; } // 由所有例項 "繼承" 的方法 Plane.prototype.startEngines = function () { console.log('starting engines...'); this.enginesActive = true; }; const richardsPlane = new Plane(1); richardsPlane.startEngines(); const jamesPlane = new Plane(4); jamesPlane.startEngines(); //ES6寫法 class Plane { constructor(numEngines) { this.numEngines = numEngines; this.enginesActive = false; } startEngines() { console.log('starting engines…'); this.enginesActive = true; } }
-
在類中,不用逗號來區分屬性或方法
-
要新增靜態方法,請在方法名稱前面加上關鍵字
static,
成為類中可以直接訪問的方法 -
在建立 JavaScript 類的新例項時,必須使用關鍵字
new
-
super
和extends
關鍵字擴充套件類。要讓子類可以訪問到父類,需要使用關鍵字super
class Tree { constructor(size = '10', leaves = {spring: 'green', summer: 'green', fall: 'orange', winter: null}) { this.size = size; this.leaves = leaves; this.leafColor = null; } changeSeason(season) { this.leafColor = this.leaves[season]; if (season === 'spring') { this.size += 1; } } } class Maple extends Tree { constructor(syrupQty = 15, size, leaves) { super(size, leaves); this.syrupQty = syrupQty; } changeSeason(season) { super.changeSeason(season); if (season === 'spring') { this.syrupQty += 1; } } gatherSyrup() { this.syrupQty -= 3; } } const myMaple = new Maple(15, 5); myMaple.changeSeason('fall'); myMaple.gatherSyrup(); myMaple.changeSeason('spring');
-
super
必須在this
之前被呼叫