比如做HIS系统,有医生的角色(医生是一类人)
- ES3的写法
//1)、定义类(型)
function Doctor(workid,name,sex,age,dept){
//有什么,属性(成员变量)
this.workid = workid;//this就是new出来的对象。
this.name = name;
this.sex = sex;
this.age = age;
this.dept = dept;
}
//能干什么,方法(函数)
Doctor.prototype.ability = function(){
alert(this.name+"在坐诊");
}
//2)、定义对象(只要是用构造函数Doctor()new出来的都是Doctor类型),调用方法
var d1 = new Doctor("01001","张天喜","男",18,"骨科");
d1.ability();
- ES6写法
ES6写法
//1)、定义类(型)
class Doctor{
//构造函数
constructor(workid,name,sex,age,dept){
//有什么,属性(成员变量)
this.workid = workid;//this就是new出来的对象。
this.name = name;
this.sex = sex;
this.age = age;
this.dept = dept;
}
//能干什么,方法(函数)
ability(){
alert(this.name+"在坐诊");
}
}
//2)、定义对象(只要是用构造函数Doctor()new出来的都是Doctor类型),调用方法
var d1 = new Doctor("01001","张天喜","男",18,"骨科");
d1.ability();
ES6的写法只是一个语法糖,调用是一模一样的。
即定义类的写法不同,但是定义对象,使用对象的写法是一样的。所以,ES6的写法和ES3的写法能够达到同样的效果,ES6只不过是在ES3的写法上加了一个好看(可阅读性好)的壳,ES6的写法最终通过预编译后,还是ES3的写法。