【发布时间】:2018-02-18 17:15:09
【问题描述】:
我刚刚开始使用 TypeScript 语言开发一个 Angular 4 的 Web 应用程序。 我的问题是:如果我用我的类中的数据字段的值初始化一个字符串变量,看起来这个值是为了复制而不是为了引用而传递的。
有没有办法传递参数以供参考?
例子:
export class MyObject {
string1: string;
string2: string;
}
export class MyClass {
myString: string;
object: MyObject;
array[]: MyObject[];
constructor() {
this.array = [{
string1: this.myString;
string2: this.myString;
}];
}
}
如果我尝试更改字段 this.myString 的值,然后在我的 HTML 模板中使用字符串插值
{{myString}}
{{array[0].string1}} {{array[0].string2}}
唯一改变的值是myString,而其他两个值保持不变myString的第一个值。这是因为参数的传递似乎是为了价值而不是参考。
对不起,如果问题是微不足道的,但我现在正在学习 TypeScript
【问题讨论】:
-
字符串在 JS/TS 中是不可变的。
-
你提供的代码让我很困惑。似乎您正在使用带有 @Component 的 MyClass
-
正如@jonrsharpe 提到的,字符串是不可变的。如果您想将
this.myString的新值用于模板的其他部分,为什么不直接删除array并直接将this.myString用于模板的其他部分,如果这是您想要实现的。
标签: angular typescript pass-by-reference pass-by-value