ES6的class

目录

 class与ES5构造函数原型模式创建函数

ES5构造函数原型模式创建函数

ES5构造函数原型模式创建函数的继承

ES6class 创建

ES6 class创建类 的继承

二者对比 :


 class与ES5构造函数原型模式创建函数

ES5构造函数原型模式创建函数

创建一个人类 name,age,height run方法

function People(name,age,height){
    this.name=name
    this.age=age
    this.height=height
}
People.prototype.run=function(){
    console.log("正在跑")
}
let p1=new People("王一",21,193)


ES5构造函数原型模式创建函数的继承

function Student(name,age) {}
    Student.prototype = new Person("小杨", "18","180")
    var s1 = new Student("xiaoyang", "21","180")//不执行 
    s1.eat()//可以执行
    console.log(s1);//得到的是 小杨  18   180

ES6class 创建

class People{
    //构造函数
    constructor(name,age,height){
        this.name=name
        this.age=age
        this.height=height
    }
    run(){
        console.log("正在跑")
    }
}
let p1=new People("王一",21,193)
let p2=new People("王二",22,187)
console.log(p1.run===p2.run)   //true

ES6 class创建类 的继承

 //继承一个学生类 
class Student extends People{
    constructor(name,age,height,score){
        //super()方法  父级的构造函数
        super(name,age,height)
        //super必须写在 自己属性的上方
        this.score=score
    }
    showInfo(){
        console.log(this.name)
    }
    run(){
        console.log(this.name+"正在跑")
    }
}
let s1=new Student("王一",21,22,65)
console.log(s1 instanceof Student)
console.log(s1)

二者对比 :


1、ES5中 需要将属性写在构造函数中 构造函数做了模拟类的做用
  方法写在构造函数的原型对象中
  ES6中  直接将属性写在对应的class类中的constructor中 方法直接通过方法名加函数写在类中
  代码简洁 方便书写
2、ES5中 继承需要结合原型和构造函数一起来继承 代码繁琐
 ES6中  可以直接子类通过extends继承父类的所有方法和属性
 通过super()方法 写父级的构造函数(需写在自己属性的上方)
 子类自己的属性也可以直接通过方法名加函数写在子类中
 如需修改父类的方法 直接同名方法覆盖即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qd_yang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值