Как переназначить переменную в angular9?

#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;
}