我们都知道,在 java,C++,python这些强类型语言中,都有类(class)的概念。
class是某个对象抽象出来的模板,用来创造一批相同特点的对象。
javascript弱类型的脚本语言。但是 js 中没有类的概念,使用函数模拟了模板,起了个名字叫构造函数,也能实现创造一批相同特点的对象。版本更新到ES6,还是没有类的概念,只是在语法中,封装了一个关键字:class,其内部实现原理,依然是构造函数。毕竟ES6的class是一种新的语法。
接下来就说说ES6的class的语法使用:
class CreatePerson{
constructor(){}
自定义方法名(){}
}
这里的 CreatePerson等价于构造函数的名字,constructor(){}等价于构造函数的函数体,自定义方法名(){}等价于绑定在构造函数原型上的方法。
举个例子来说:
function CreatePerson(n,a){
this.name = n;
this.age = a;
}
CreatePerson.prototype.show = function(){
console.log(this.name + "---" + this.age);
}
var p1 = new CreatePerson("admin",18)
p1.show();
上面的代码就等价于:
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构造函数依然能够得到同样的结果。