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;
}
}
- 新语法以关键字class 开头,然后就是类型名,而花括号中定义的是属性和方法。
- 定义方法不必再使用function 关键字,有方法名和圆括号就可以。
- 如果把方法命名为constructor,那它就是这个类的构造函数(与前一个例子中的Person 函数一样)。
- 在这个类中定义的方法和属性都会添加到原型上,具体来说,sayName()和getOlder()都是在Person.prototype 上定义的。
- 在构造函数中,public 和private 关键字用于创建对象的实例属性。这个例子中的name 和age都是公有属性。