在es5中,物件導向我們通常寫成這樣
function person(name,age)
person.prototype.showname = function () ;
let p = new person("xiaoqiang", 10);
p.showname();
上面這種寫法與傳統的物件導向寫法有很大的不同,讓學習過其他物件導向語言的同學感到很彆扭,因此,在es6中,增加了語法糖,使用class關鍵字來定義類,這裡說的語法糖的意思簡單的理解就是另一種更便捷的寫法,編譯後的功能實際上是一樣的
下面是es6中定義類的語法:
class person
showname()
}let p = new person("xiaoqiang2", 10);
p.showname();
注意1: constructor是預設新增的方法,當new 關鍵字去呼叫類的時候,constructor會預設被執行,即使不寫這個constructor方法,也會預設新增乙個空方法
constructor(name, age)
注意2: 在類中寫的方法之間不能加逗號,否則會報錯
class person
showname(),
showage()
}let p = new person("xiaoqiang2", 10);
p.showname();
在es6中使用extends關鍵字來實現繼承
class parent
showname()
}//child去繼承 parent
class child extends parent
let c = new child('nodeing', 20);
console.log(c);
上面**就是繼承的基本寫法,只是我們並沒有在子類中去增加方法,此時,子類相當於去拷貝了父類
注意1: 在子類中如果重寫父類的constructor方法,需要首先呼叫supper方法
class parent
showname()
}class child extends parent
}let c = new child('nodeing', 20);
console.log(c);
注意2: 如果這樣寫會報錯:
class child extends parent
}
es6 最佳入門實踐 6
symbol是es6中一種新增加的資料型別,它表示獨一無二的值。es5中我們把資料型別分為基本資料型別 字串 數字 布林 undefined null 和引用資料型別 object 在es6中新增的symbol資料型別劃分到基本資料型別 為什麼會有這樣一種資料型別呢?別人給了你乙個定義好的物件 va...
es6 最佳入門實踐 10
generator函式是es6提供的一種非同步程式設計解決方案。在它的內部封裝了多個狀態,因此,又可以理解為一種狀態機,執行generator函式後返回乙個迭代器物件,使用這個迭代器物件可以遍歷出generator函式內部的狀態 generator函式和傳統函式的不同點有 1 函式定義的時候,fun...
es6 最佳入門實踐 8
要理解非同步,首先,從同步 開始說 alert 1 alert 2 像上面的 執行順序是從上到下,先後彈出1和2,這種 叫做同步 alert 0 settimeout function 2000 settimeout function 1000 alert 3 上面 的彈出順序是 0 3 2 1 像...