编程语言,都有关于类的定义和使用,java,C#,C++。使用class的关键字,js之前的版本,没有用。保留字,ES6启用了该关键字。
通过构造函数定义,并生成对象。
//定义传统的类,js之前的写法 function Person(name,salary) { this.name=name; this.salary=salary; } //定义它的方法 Person.prototype.toString=function () { return this.name+","+this.salary; } //如何来获取 let p1=new Person('张晨光',90000); console.log(p1.toString()); //这时候,用的是function来定义一个类。和传统面向对象语言,写法差别很大,很难受。
接下来,看看ES6是如何写的呢?
使用静态方法的时候,语法
static 方法名(参数){}
调用的时候:类名.方法名()
基本语法
子类 extends 父类,在之前ES5通过修改原型链模式实现。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> //人的定义 class Person{ //构造方法的定义 constructor(name,salary){ this.name=name; this.salary=salary; } //自定义方法 showName(){ return `姓名:${this.name}`; } showSalary(){ return `工资:${this.salary}`; } } //定义一个子类 class YellowPerson extends Person{ //子类如果没有定义construtor,则该方法会默认添加上去,即任何子类都有constructor() //constructor(...args){ super(...args) } //这时候,子类需要针对父类进行加工处理 constructor(name,salary,skin){ super(name,salary);//super()使用,在子类构造方法最前面; this.skin=skin; // } //子类增加一个自己的方法; showInfo(){ //通过super.方法,来调用父类的方法 return super.showName()+","+super.showSalary()+",肤色:"+this.skin; } } //调用之; let yp=new YellowPerson('张晨光',8888,'青铜色'); //测试实例; //console.log(yp instanceof YellowPerson); //yp是不是子类的实例 //console.log(yp instanceof Person); //yp是不是父类的实例 console.log(yp.showInfo()); </script> </head> <body> </body> </html>总结:
1.ES6类定义的语法,使用class 类名{
//构造方法
//自定义方法
}
2.ES6 静态方法的定义和使用
3.ES6 子类继承父类的语法和使用
tea_year 认证博客专家 大司徒 产品总监 微软MVP!ORACLE认证高级工程师!主要研究方向为大数据、人工智能、JAVA、.Net、数据库 、前端开发、产品研发,曾经服务过中铝、中烟等大型上市国企IT部门,软件企业联合创始人,喜欢软件研发管理、技术营销!