#javascript #angular #typescript
#javascript #angular #typescript
Вопрос:
У меня есть функция, которая вызывает ngDoCheck()
. Эта функция вызывает несколько других функций, которые переназначают мою переменную. Но изменение переменной выполняется только в функциях, а не в глобальной переменной. myVariable
всегда 0.
myVariable = 0;
ngDoCheck(): any {
const word: string = this.form.get('word').value;
this.PasswordStrengthMeter(word, this.myVariable);
console.log('Value: ' this.myVariable);
}
Mainfunc(word: string, myVariable: number): any {
this.SecondaryFunc(word, myVariable);
this.AnotherSecondaryFunc(word, myVariable);
}
Комментарии:
1. Возвращает новое значение и в вызывающем присваивает
this.myVariable = this.SecondaryFunc
2. числовые атрибуты передаются по значению, а не по ссылке.
Ответ №1:
Если она находится в том же компоненте, почему вы передаете эту переменную каждой функции? просто используйте его в этой функции, поскольку это глобальная переменная.
Ответ №2:
Передается значение myVariable
Mainfunc
, а не ссылка.
Если вы хотите изменить глобальную переменную, используйте this.myVariable
непосредственно из вашего другого SecondaryFunc
и AnotherSecondaryFunc
.
myVariable = 0;
...
Mainfunc(word: string): any {
this.SecondaryFunc(word);
this.AnotherSecondaryFunc(word);
}
SecondaryFunc(word: string): any {
this.myVariable = 5;
}
AnotherSecondaryFunc(word: string): any {
this.myVariable = 6;
}