js重难点:Class知识点

class的本质还是一个函数,只不过是函数的另一种写法,这种写法可以让对象的原型属性和函数更加清晰。

constructor函数

  • constructor()函数是一个类必须具有的函数,可以手动添加,如果没有手动添加,则会自动隐式添加一个空的constructor()函数。
  • constructor()函数默认会返回当前对象的实例,即默认的this指向,我们可以手动修改返回值。

静态属性和函数

  • 静态属性和函数同样存在于类内部,使用static关键字修饰时,静态属性和函数无法被实例访问,只能通过类自身使用。
  • 静态函数中的this指向的是类本身,而不是类的实例,也正因为静态函数和实例函数中的this是隔离的,所以同一个类中可以存在函数名相同的静态函数和实例函数。

Class使用注意点

  • 只能与new关键词配合使用。class定义的类只能配合new关键字生成实例,不能像普通函数一样直接调用。
  • 不存在变量提升。
  • 在类中声明函数时,不要加function关键字
  • this指向会发生变化。类内部的this默认指向的是类的实例,在调用实例函数时,一定要注意this的指向性问题。如果单独使用实例函数时,this的指向会发生变化,很容易带来一定的问题。

javascript
169 views
Comments
登录后评论
Sign In
·

类能看做函数吗?这应该是看做一个对象,里面的函数是他的对象方法吧?