@survivor2005

Функция не меняет данные?

Добрый день, объясните, пожалуйста, как быть. Func1 не меняет глобальную переменную. Не понимаю почему так происходит, если я подставляю данные. А func2 отрабатывает корректно. Но мне нужно переиспользовать функцию, а не зашивать в ней код. Что делать?

let a = 10;

 function func1(num){
     console.log(num=num-1); 
 }

 function func2(){
      console.log(a=a-1);
 }

 func1(a) // 9
 func1(a) // 9
 func1(a)// 9

 func2() // 9
 func2() // 8
 func2() // 7
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В Func1 нет глобальной переменной, есть только локальная.
let a = 10;
function Func1(num) {
  return num-1;
}
a = Func1(a);
console.log(a); // 9
a = Func1(a);
console.log(a); // 8
Ответ написан
twobomb
@twobomb
let a = 10;

 function func1(num){
       return num-1; 
 }
a = func1(a);
console.log(a);

P.S. Увы по ссылке обычные переменные в js передавать нельзя
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы