class 相关

作者: IOneStar | 来源:发表于2021-12-16 21:14 被阅读0次

    class

    基本用法

    static关键字:
    在 class 中的方法或者属性前面加上 static,就变成了静态方法或静态属性。它们都是定义在类上面的,不会被实例继承。如果静态方法包含this关键字,这个this指的是类,而不是实例。

    实例属性除了可以定义在 contructor 中,还可以定位在类的顶层。

    class 中的取值函数(getter)和存值函数(setter):
    类内部的 get,set关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为。
    存值函数和取值函数是设置在属性的 Descriptor 对象上的。

    class的表达式, const myClass = class A {}, A可以在 class的内部使用,代指当前类。外部使用要使用 myClass。类的内部使用 this,指的是类的实例

    Class 的继承
    extends 用来继承
    super 表示父类的构造函数,继承的时候必须在子类的构造函数中执行一次。不然 JS 引擎会报错

    TS 中的 class

    • public,公有的,在任何地方都可以被访问到,默认所有的都是 public
    • private,私有的,不能在声明它的类的外部访问
    • protected,允许在子类中访问,只允许被继承
    • readonly:只读
    • abstract class,抽象类不允许被实例化。

    装饰器

    @+函数名

    类的装饰,函数的参数 target 为类本身,一个参数不够,可以在装饰器外面再封装一个函数

    方法的修饰,函数接受 3 个参数,target,name, descriptor。

    • target 为类的原型对象,即 Person.prototype,因为这个时候实例还未生成,只能去装饰原型
    • name: 所要装饰的属性名
    • descriptor: 该属性的描述对象
      • value,
      • enumerable
      • configurable,
      • writable

    相关文章

      网友评论

        本文标题:class 相关

        本文链接:https://www.haomeiwen.com/subject/oawkiltx.html