es5中的類型定義
function Person(name, age){
this.name = name;
this.age = age;
}
Person.prototype.sayName = function(){
alert(this.name);
};
Person.prototype.getOlder = function(years){
this.age += years;
};
es6語法
再看看使用新語法定義的類:
class Person {
constructor(name, age){
public name = name;
public age = age;
}
sayName(){
alert(this.name);
}
getOlder(years){
this.age += years;
}
}
- 新語法以關(guān)鍵字class 開頭,然后就是類型名,而花括號中定義的是屬性和方法。
- 定義方法不必再使用function 關(guān)鍵字,有方法名和圓括號就可以。
- 如果把方法命名為constructor,那它就是這個(gè)類的構(gòu)造函數(shù)(與前一個(gè)例子中的Person 函數(shù)一樣)。
- 在這個(gè)類中定義的方法和屬性都會添加到原型上,具體來說,sayName()和getOlder()都是在Person.prototype 上定義的。
- 在構(gòu)造函數(shù)中,public 和private 關(guān)鍵字用于創(chuàng)建對象的實(shí)例屬性。這個(gè)例子中的name 和age都是公有屬性。