ES6 Class类

定义
在ES6中,class本质上就是function。

类声明

类声明的方式有两种,如下

  • 匿名类

    let obj = class{
    	constructor(name){
    		this.name = name;
    	}
    }
    
  • 命名类

    let obj = class Example {
    	constructor(name){
    		this.name = name;
    	}
    }
    

注意要点:

  • constructor 方法是类的默认方法,创建类的实例化对象时被调用。constructor 方法用于定义初始化类的参数
  • 类不可以重复声明
  • 类定义不会被提升,必须在访问前对类进行定义,否则就会报错。
  • 类中方法不需要 function 关键字,方法之间不需要逗号隔开。

类的实例化

  • new
    class 的实例化必须通过 new 关键字。如下图
    在这里插入图片描述

注意要点:

  • class 实例化的相同对象都是共享同一个原型对象。如下图
    在这里插入图片描述

封装与继承

  • extends
    class 类通过 extends 实现类的继承。

    class Child extends Father { 
    	//属性/方法
    }
    

    注意要点:

    • 子类 constructor 方法中必须有 super,且必须出现在 this 之前。
    • 调用父类构造函数,只能出现在子类的构造函数。
    • super 在普通方法中,指向父类的原型对象。在静态方法中,指向父类。
    • 常规对象不可以被继承,但可以使用 Object.setPrototypeOf() 解决。
  • getter / setter
    在 class 中使用 getter / setter 进行属性的封装,如下图
    在这里插入图片描述
    注意要点:

    • getter 不可单独出现。
    • getter 与 setter 必须同级出现,或者全部放在子类中。
    • 在 getter / setter 中使用 this.a 赋值或者取值则会一直递归调用,直至报错。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值