作为新一个版本的es,es6新增了很多标签,弥补了之前版本的不足,使编写代码变得更加简洁和方便,而class则是其中非常重要的一个关键字,我们需要了解并熟练使用他。
首先要了解class是用来干什么的:就是实现创造一批相同特点的对象。
特点是:继承、封装、多态。
这就是基本语法啦,可以用对待函数的眼光去看待,CreatePerson 就是这个构造函数的名字(可以自定义)
但是constructorj就不可以啦,他也是一个关键字,是和class一起用的。
肯定有人要问,什么时候可以不用呢,当你不需要在初始化时就要执行的代码时,就不需要,因为他的语义就是这样。
class CreatePerson{
constructor(){}
pp(){
}
}
要记住的是constructor是在创建实例对象时自动调用的。也就是new时才调用!
class的用处大部分都可以通过es5来实现,但是新的es6只是让代码变得更加条理分明,更加模块化。
可以通过对比发现,每个函数都有自己明确的功能,被封装成了几个功能。而且也验证了class的继承和封装
function CreatePerson(n,a){
// this.name = n;
// this.age = a;
// }
// CreatePerson.prototype.show = function(){
// console.log(this.name + "---" + this.age);
// }
// 等价于
class CreatePerson{
constructor(n,a){
this.name = n;
this.age = a;
}
show(){
console.log(this.name + "---" + this.age);
}
}
var p1 = new CreatePerson("admin",18)
p1.show();
最后总结一下class的基本语法
CreatePerson等价于构造函数的名字
constructor(){}等价于构造函数的函数体
自定义方法名(){}等价于绑定在构造函数原型上的方法