- 类名后面没有括号
- 必须有一个constructor(this指向实例)
- 类方法不用function关键字,方法之间不需要用逗号隔开,否则会报错
- 类的数据类型就是函数,类本身就指向构造函数(Point === Point.prototype.constructor // true)
- 事实上,类的所有方法都定义在类的prototype属性上面。
- 类的内部所有定义的方法,都是不可枚举的(不能使用Object.keys遍历到)
- 实例的属性除非显式定义在其本身(即定义在this对象上),否则都是定义在原型上
- 类中的this默认指向类的实例,而不是类本身,
- 静态方法,在方法前加static关键字,只能通过类名调用,实例调用会报错,可以被子类继承
- 实例属性的新写法,可以不用使用this,直接和方法类似,不用var关键字
- 静态属性,声明类后,通过类名.name添加静态属性(目前有提议和静态方法一样添加static关键字)
- 私有方法和私有属性(在类的内部使用)
(1)通过名字区分,例如私有属性(方法)名称加下划线,但是不保险,外部可以使用
(2)将私有方法移到外面,在类内部共有方法中使用name.call(this),即在内部调用,改变this指向
(3)利用symble的唯一性
(4)私有属性的提案,(类似static,在私有属性或方法前加#)
JS之class知识点
最新推荐文章于 2024-06-04 17:02:54 发布