类的变量初始化和 constructor 初始化的区别如下:
-
变量初始化是在类中定义变量的同时对其进行初始化赋值,可以对变量进行默认赋值,如下所示:
typescriptCopy code class MyClass { variable: number = 0; // 对变量进行默认赋值 } -
constructor 初始化是在类实例化时,通过 constructor 函数对类成员进行初始化赋值,可以根据实例化时传入的参数进行赋值初始化,如下所示:
typescriptCopy code class MyClass { variable: number; constructor(value: number) { this.variable = value; // 根据参数进行赋值初始化 } }在 constructor 中也可以对变量进行默认赋值,但是如果变量已经在类中进行了初始化赋值,将会被 constructor 中的赋值覆盖。
-
变量初始化是类成员的一部分,会在类的实例化之前进行初始化;而 constructor 初始化是实例化过程中对类成员进行初始化的一部分。
-
变量初始化可以在类中的任何位置进行,而 constructor 初始化只能在 constructor 函数中进行。 总之,变量初始化和 constructor 初始化都可以用来对类成员进行初始化赋值,但是二者的使用场景不同,变量初始化更适用于对类成员进行默认赋值,而 constructor 初始化更适用于根据实例化时传入的参数进行赋值初始化。