class的本质还是一个函数,只不过是函数的另一种写法,这种写法可以让对象的原型属性和函数更加清晰。
constructor函数
- constructor()函数是一个类必须具有的函数,可以手动添加,如果没有手动添加,则会自动隐式添加一个空的constructor()函数。
- constructor()函数默认会返回当前对象的实例,即默认的this指向,我们可以手动修改返回值。
静态属性和函数
- 静态属性和函数同样存在于类内部,使用static关键字修饰时,静态属性和函数无法被实例访问,只能通过类自身使用。
- 静态函数中的this指向的是类本身,而不是类的实例,也正因为静态函数和实例函数中的this是隔离的,所以同一个类中可以存在函数名相同的静态函数和实例函数。
Class使用注意点
- 只能与new关键词配合使用。class定义的类只能配合new关键字生成实例,不能像普通函数一样直接调用。
- 不存在变量提升。
- 在类中声明函数时,不要加function关键字
- this指向会发生变化。类内部的this默认指向的是类的实例,在调用实例函数时,一定要注意this的指向性问题。如果单独使用实例函数时,this的指向会发生变化,很容易带来一定的问题。