ES6引入了 Class,作為對象的模板。通過class關(guān)鍵字,可以定義類。
ES6 的類,完全可以看作構(gòu)造函數(shù)的另一種寫法。
類的數(shù)據(jù)類型就是函數(shù),類本身就指向構(gòu)造函數(shù)。
類相當于實例的原型,所有在類中定義的方法,都會被實例繼承。
類的特性:
- 定義“類”的方法的時候,前面不需要加上function這個關(guān)鍵字。
- 方法之間不需要逗號分隔,加了會報錯。
- 類的所有方法都定義在類的prototype屬性上面。
- 類的內(nèi)部所有定義的方法,都是不可枚舉的。
- 一個類必須有constructor方法,如果沒有顯式定義,一個空的constructor方法會被默認添加。
- 類必須使用new調(diào)用,否則會報錯。
- 類也可以使用表達式的形式定義。
- 類不存在變量提升,必須先定義,后使用。
- 如果在一個方法前,加上static關(guān)鍵字,則被稱為“靜態(tài)方法”,可通過類直接調(diào)用。靜態(tài)方法中的this指向類本身。
- 在“類”的內(nèi)部可以使用get和set關(guān)鍵字,對某個屬性設(shè)置存值函數(shù)和取值函數(shù)。
代碼說明:
class Person {
constructor(fullname,age) {
this.fullname = fullname;
this.age = age;
}
toString(){
console.log(this.fullname+'---'+this.age);
}
static eat(){
console.log('xxx am eating');
}
}
var p1=new Person('xxx',25);
p1.toString(); //xxx---25
Person.eat(); //xxx am eating
本文只是學習es6的一些簡單筆記,詳情請看阮一峰的es6入門