JavaScript-da sanawanyň lokal üýtgeýjisi

Aşakdaky koda serediň:

javascriptfunction test() {
  let num = 1;
  
  return function() {
    console.log(num);
    num++;
  };
}

test()(); // 1-nji çap eder
test()(); // 1-nji çap eder

Sebäbi näme her wagt 1 san çap ediler? Muny düşünmek üçin, kodymyzy başgaça ýazalyň:

javascriptfunction test() {
  let num = 1;
  
  return function() {
    console.log(num);
    num++;
  };
};

let func1 = test(); //!! birinji funksiýa
func1();  //1-nji çap eder

let func2 = test(); //!! ikinji funksiýa
func2();  //1-nji çap eder

Ýöne, test funksiýasyny şeýle: test()() çaýyrmak, her bir öz ýapyşmasy bolan öz funksiýasyny döredýär we bu funksiýany derrew çagyryp ýetirýär.

Задание 1

Kody işletmezden öň, konsolda näme çap ediler?

javascriptfunction func() {
  let num = 0;
  
  return function() {
    console.log(num);
    num++;
  };
}

func()();
func()();
func()();
Задание 2

Kody işletmezden öň, konsolda näme çap ediler?

javascriptfunction func() {
  let num = 0;
  
  return function() {
    console.log(num);
    num++;
  };
}

let test = func;

test()();
test()();
test()();