class是es6新特性。在ES6中,class(類)作為物件的模板被引入,可以通過class關鍵字定義類;新的class寫法讓物件原型的寫法更加清晰、更像物件導向程式設計的語法,也更加通俗易懂。類(class)是ECMAScript中新的基礎性語法糖結構,雖然ES6類表面上看起來可以支援正式的物件導向程式設計,但實際上它背後使用的仍然是原型和建構函式的概念,讓物件原型的寫法更加清晰、
前端(vue)入門到精通課程:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:
本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
class是es6新特性。在ES6中,class (類)作為物件的模板被引入,可以通過 class 關鍵字定義類。
ES6 提供了更接近傳統語言的寫法,新引入的class關鍵字具有正式定義類的能力。類(class)是ECMAScript中新的基礎性語法糖結構,雖然ECMAScript 6類表面上看起來可以支援正式的物件導向程式設計,但實際上它背後使用的仍然是原型和建構函式的概念,讓物件原型的寫法更加清晰、更像物件導向程式設計的語法。
傳統的JS只有物件的概念,沒有class類的概念,因為JS是基於原型的物件導向語言,原型物件特點就是將屬性全部共用給新物件。
ES6引入了class類這個概念,通過class關鍵字可以定義類,這就是更符合我們平時所理解的物件導向的語言。
class Person{ //定義一個名為Person的類
// 建構函式,用來接受引數
constructor(x,y){
this.x = x; //this代表的是範例物件
this.y = y;
}
todoSome(){ //這是個類的方法,不需要加function,有多個方法也不用逗號隔開
alert(this.x + "的年齡是" +this.y+"歲");
}
}
export default Person;
登入後複製
靜態方法和靜態屬性,是使用static關鍵字的屬性和方法
2.1 靜態方法
static classMethod(){
console.log('123456')
}
登入後複製
let p = new Point();
p.classMethod(); // 報錯
登入後複製
2.2 靜態屬性
static prop = 1 ; // 靜態屬性
登入後複製
import classtest from "./classtest"; //先引入父類別
class Man extends classtest{
constructor(x,y){ //建構函式儘量與父類別引數保持一致
super(); //利用super()關鍵字,這個必須放在子類建構函式中的第一位置
this.x = x;
this.y = y;
}
}
export default Man;
登入後複製
getter、setter就是給class的屬性讀值、傳值用的。
取值函數getter和存值函數setter可自定義賦值和取值行為,當一個屬性只有getter沒有setter的時候,這個屬性就是唯讀屬性,不能賦值,第一次初始化也不行。
如果變數定義為私有的(定義在類的花括號外面),就可以只使用getter不使用setter。
let data=[1,2,3,4]; //放在類外面,屬於私有變數,可以唯讀取
class Person{
// 建構函式
constructor(x,y){
this.x = x;
this.y = y;
}
get x(){
console.log('獲得name');
return this._name; //get讀取屬性
}
set x(x){
console.log("設定name");
this._name=x; //set給屬性賦值
}
get data(){
return data; //唯讀屬性,屬性返回的值只能是私有變數
}
todoSome(){
alert(this.x + "的年齡是" +this.y+"歲");
}
static dayin(){
alert("dayin");
}
}
export default Person;
登入後複製
如何使用:
var test= new this.$myutils.classtest('haha','18');
test.x="haha3"; //改變了範例化時候的x的值
test.todoSome(); //輸出:haha3的年齡是18歲。這裡就已經不是範例化時候的haha了
console.log(test.data); //結果:列印[1,2,3,4]
登入後複製
1、在類中定義方法時候,不可以給方法加上function關鍵字,因為JS中建構函式是用function定義的,兩個隔開。
2、所有方法不要用逗號隔開,否則會報錯。
【推薦學習:】
以上就是class是es5還是es6的詳細內容,更多請關注TW511.COM其它相關文章!