1、概述
在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。
class 的本质是 function。
它可以看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。
2、基础用法
1、类定义
// 匿名类 let Example = class { constructor(a) { this.a = a; } } // 命名类 let Example = class Example { constructor(a) { this.a = a; } }
2、类声明
class Example { constructor(a) { this.a = a; } }
注意:
类定义不会被提升,这意味着,必须在访问前对类进行定义,否则就会报错。
类中方法不需要 function 关键字。
方法间不能加分号。
3、类的主体
1、属性:
ES6 中,prototype 仍旧存在,虽然可以直接自类中定义方法,但是其实方法还是定义在 prototype 上的。 覆盖方法 / 初始化时添加方法。
Example.prototype={ //methods }
2、静态属性:
class 本身的属性,即直接定义在类内部的属性( Class.propname ),不需要实例化。 ES6 中规定,Class 内部只有静态方法,没有静态属性。
3、公共属性:
class Example{} Example.prototype.a = 2;
5、name属性:就是class的名称,返回跟在 class 后的类名(存在时)。
4、方法:
1、constructor方法(构造方法):创建类的实例化对象时被调用。
class Example{ constructor(){ console.log('我是constructor'); } } new Example(); // 我是constructor
4、类的实例化
1、class 的实例化必须通过 new 关键字。
2、decrator: decorator 是一个函数,用来修改类的行为,在代码编译时产生作用。
5、封装与继承 getter和setter
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。