ES6的class語法
阿新 • • 發佈:2018-11-09
ES6的class語法
普通面對物件
function Person( name,age){
this.name=name;
this.age=age;
}
Person.prototype..sayhello=function( ){
console.log(this.name)
}
//例項
const p=new Person('kaivon' , 18);
p . showName( );
//ES6面向物件
class whitePerson(name,age){
constructor:{
this.name=name;
this.age=age;
} //注意這不能寫逗號
showName( ){
console.log(this.name)
}
}
const p1=new whitePerson('kaivon' , 18);
p1 . showName( );
class是一個宣告,與var,let一樣。它的作用是宣告一個類
語法
class name[extends]{
//class body
}
extends為繼承,是個可選引數
注意:
宣告的類還是建構函式
不能重複宣告,會報錯(相當於宣告一個變數,與let,const一樣)
與ES5寫的建構函式行為一致,除了原型裡方法的可列舉性以外
共享方法(例項方法)直接寫,它會自動放在prototype上
共享屬性(例項屬性)需要寫在constructor裡
共享屬性和方法
1,類裡的this指向例項,所以屬性都放在this上,一般會在constructor裡去定義
2,共享方法放在大括號內,因為大括號內容的方法會最終放到prototype裡
私有屬性與方法
1,ES6規定大括號裡面只能放方法,不能放屬性,
2,或者在類的外面新增屬性,
3,私有方法可以被其他子類繼承
new . target屬性 返回建構函式(類)
1,一般用在建構函式之中,在class內部指向建構函式
2,如果建構函式不是通過new命令呼叫的,將返回undefined
3,當有繼承的時候,它放回子類
class的方法也有私有的:加個static
//get和post
class Pop{
get att( ){
return '你獲取了'
}
set att( ){
console.log(`你設定了個${value}`);
}
}
const p1=new Pop( );
console.log( p1.att ); //你獲取了
p1.att='名字' ; // 你設定了個名字
普通面對物件
function Person( name,age){
this.name=name;
this.age=age;
}
Person.prototype..sayhello=function( ){
console.log(this.name)
}
//例項
const p=new Person('kaivon' , 18);
p . showName( );
//ES6面向物件
class whitePerson(name,age){
constructor:{
this.name=name;
this.age=age;
} //注意這不能寫逗號
showName( ){
console.log(this.name)
}
}
const p1=new whitePerson('kaivon' , 18);
p1 . showName( );
class是一個宣告,與var,let一樣。它的作用是宣告一個類
語法
class name[extends]{
//class body
}
extends為繼承,是個可選引數
注意:
宣告的類還是建構函式
不能重複宣告,會報錯(相當於宣告一個變數,與let,const一樣)
與ES5寫的建構函式行為一致,除了原型裡方法的可列舉性以外
共享方法(例項方法)直接寫,它會自動放在prototype上
共享屬性(例項屬性)需要寫在constructor裡
共享屬性和方法
1,類裡的this指向例項,所以屬性都放在this上,一般會在constructor裡去定義
2,共享方法放在大括號內,因為大括號內容的方法會最終放到prototype裡
私有屬性與方法
1,ES6規定大括號裡面只能放方法,不能放屬性,
2,或者在類的外面新增屬性,
3,私有方法可以被其他子類繼承
new . target屬性 返回建構函式(類)
1,一般用在建構函式之中,在class內部指向建構函式
2,如果建構函式不是通過new命令呼叫的,將返回undefined
3,當有繼承的時候,它放回子類
class的方法也有私有的:加個static
//get和post
class Pop{
get att( ){
return '你獲取了'
}
set att( ){
console.log(`你設定了個${value}`);
}
}
const p1=new Pop( );
console.log( p1.att ); //你獲取了
p1.att='名字' ; // 你設定了個名字