Angular:用let和var声明属性



在typescript和javascript中,我们使用let或var来声明变量。但在angular组件中,我们不使用它们,尽管angular使用了typescript。例如

export class ProductComponent implements OnInit {
productNumber = 5;
constructor() { }
ngOnInit() {
}
}

在productNumber中,我们没有使用let nor-var,但它仍然有效。为什么?

letvar用于生成局部变量。在这个例子中,您得到的不是一个局部变量,而是一个类字段。它们是一种不同的东西,所以它们有不同的语法。

当你这样做时:

export class Example {
productNumber = 5;
}

它基本上是这个的简写(也不使用varlet(:

export class Example {
constructor() {
this.productNumber = 5;
}
}

使用let或var声明变量时,javascript会为该变量分配专用内存空间。每次你在变量中写入一些值,实际上意味着你正在写入特定的内存空间。您可以在函数(是局部变量(或文件(是该文件的全局变量(中创建这样的变量。

在您的情况下,productNumber只是一个类成员,您只是告诉typescript编译器有一个默认值为5的成员变量。当您在文件或函数中实例化该类的对象时,它实际上获得了内存分配,如下所示。

let object1 = new Example(5);

最新更新