在typescript和javascript中,我们使用let或var来声明变量。但在angular组件中,我们不使用它们,尽管angular使用了typescript。例如
export class ProductComponent implements OnInit {
productNumber = 5;
constructor() { }
ngOnInit() {
}
}
在productNumber中,我们没有使用let nor-var,但它仍然有效。为什么?
let
和var
用于生成局部变量。在这个例子中,您得到的不是一个局部变量,而是一个类字段。它们是一种不同的东西,所以它们有不同的语法。
当你这样做时:
export class Example {
productNumber = 5;
}
它基本上是这个的简写(也不使用var
或let
(:
export class Example {
constructor() {
this.productNumber = 5;
}
}
使用let或var声明变量时,javascript会为该变量分配专用内存空间。每次你在变量中写入一些值,实际上意味着你正在写入特定的内存空间。您可以在函数(是局部变量(或文件(是该文件的全局变量(中创建这样的变量。
在您的情况下,productNumber只是一个类成员,您只是告诉typescript编译器有一个默认值为5的成员变量。当您在文件或函数中实例化该类的对象时,它实际上获得了内存分配,如下所示。
let object1 = new Example(5);