Class
一、类型约束
在讲类型约束前,先讲解以下Class的如何定义变量:在Ts中是不运行直接在 constructor 方法定义变量的 需要在 constructor 上面先声明,而且你定义了变量不使用,则会提示错误:如图:
这种请跨下通常会给默认值或者赋值,如图:
类型约束:
使用 implements 来约束 class 的类型,如下:
因为限制了vue的类型,所以必须有 options 和 init 且类型需一致
二、继承
当我们一个子类想使用一个之前的类中出现过的方法的时候,我们就会想到继承 extends 如下:
这时候 XiaoMing 这个 class 就可以使用 Person 里面定义的方法了 但是一定要注意 super() 一定要写在最上面
三、修饰符
Class 的 修饰符有 public private protected 三个。
使用 public 修饰符 可以让你定义的变量被内、外部访问,当我们没有给属性写修饰符 则默认是 public
使用 private 修饰符 可以让你定义的变量只能在内部访问 外部访问不到
使用 protected 修饰符 让你定义的变量只能在内部和继承的子类中访问 不能被外部访问
具体看下图:
这就可以看出上面所说的三种修饰符在特定情况下才能使用。
四、super()
回顾上面的继承时使用的super()方法,为什么要写在上面,super()是初始化父类,要使用继承的父类,一定要先有父类才能有子类。
super()的原理就是父类的 prototype.constructor.call,我们可以直接使用 super 来直接调用父类的除了private 定义的属性
五、静态方法和静态属性
使用 static 定义的静态 方法或属性 只能被 static 定义的方法或者属性使用,且 被 static 定义的属性或方法 只能使用 Class 来调用,如图:
六、get和set
我们可以在 Class 中写 get 和 set ,对数据进行劫持,如下:
这时候我们就可以劫持传进来的值,然后进行变化,输出的结果是