ES6引入了Class(类)这个概念作为对象的模板,通过class关键字,可以定义类。新的class写法比对象原型的写法更加清晰、更像面向对象编程的语法。
类只能先定义才能进行实例化,没有类提升效果。
1、类的基本定义和生成实例
//定义Person类
class Person{
//类的构造函数(构造函数的参数是在new实例化的时候传入)
constructor(name,age = 18){
this.name = name;
this.age = age;
}
toInfo(){
return (this.name + "的年龄是" + this.age );
}
}
//实例化类(传入参数)
let girl = new Person("winne",20);
console.log(girl.toInfo()); // winne的年龄是20
console.log(typeof Person);//function
console.log(Person === Person.prototype.constructor);//true
上面代码表明,类的数据类型就是对象(函数),类本身就指向构造函数。类的所有方法都定义在类的prototype属性上面。