es6 class

es6的class是构造函数的一个语法糖,但是必须使用new关键字调用,与构造函数不同的是,定义的方法不可枚举

class内部形如methodName() {...}不是函数的简写,而是class格式规范,方法之间不能加逗号,constructor省略时会被默认添加

class的方法都定义在prototype上面,可以通过this关键字将属性或变量写入实例,class关键字不存在声明提升

class存在存值函数(set)和取值函数(get),会拦截默认行为,定义的属性,setter/getter会存在属性的Descriptor对象上

class存在静态方法,通过static关键字定义,只存在于class构造函数上而不在实例上

class的静态属性,只能通过ClassName.propName设定,但是有提案实现直接在class内部实现实例属性直接propName = value,而静态属性在前面加上static关键字就行,通过babel转码,基本可以使用这种表现形式

new.target返回当前构造器

类的继承

class A {
}

class B extends A {
}

B.__proto__ === A // true
B.prototype.__proto__ === A.prototype // true
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • class的基本用法 概述 JavaScript语言的传统方法是通过构造函数,定义并生成新对象。下面是一个例子: ...
    呼呼哥阅读 9,541评论 3 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,491评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,956评论 18 399
  • 接18日晚间打卡 个人散文像故事一样需要冲突,好的散文家知道该如何选择话题,既不能太大也不能太小,要能积蓄足够的能...
    入定阅读 1,066评论 0 0
  • 目录君‖上一章 第九章:生死簿上记生死(上) 小红狼吞虎咽的吃着糕点,想必确实是饿极了。我突然说:“小红,一会儿我...
    清风自来阅读 3,547评论 8 11