Vigezo vya Kazi za Ndani na Nje katika JavaScript

Wacha tufanye ili kazi ya nje na ya ndani zikubali vigezo:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
}

Tupitishe kigezo cha kazi ya nje kwenye wito wa kazi ya ndani:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // itatoa 1
  }
  
  func(num); //!! tunapitisa kigezo
}

test(1); // tunapitisa kigezo kama nambari

Inabadilika kuwa katika kazi ya ndani itakuwa inapatikana kutofautisha num kama kutofautisha kwa nje kutoka kwa kazi ya mzazi na kutofautisha localNum, ambayo ni kutofautisha kwa ndani ya kazi ya ndani.

Vitetebeau hivi viwili vitakuwa na thamani sawa:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // itatoa 1
    console.log(localNum); // itatoa 1
  }
  
  func(num);
}

test(1);

Tofauti kati yao itakuwa kwa yafuatayo: ikiwa katika kazi ya ndani kubadilisha kutofautisha num - itabadilika na katika kazi ya nje:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // tunabadilisha kutofautisha num
  }
  
  func(num);   // tunapitisa kigezo
  console.log(num);  // itatoa 2
}

test(1); // tunapitisa kigezo kama nambari

Na kutofautisha localNum kitakuwa kwa ndani. Mabadiliko yake hayatasababisha mabadiliko yoyote katika kazi ya nje. Na yenyewe kutofautisha localNum haitaonekana nje ya kazi ya ndani:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // tunabadilisha kutofautisha num
  }
  
  func(num); // tunapitisa kigezo
}

test(1); // tunapitisa kigezo kama nambari
Задание 1

Amua, bila kuzindua kificho, nini kitatolewa kwenye koni:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num);
}

test(1);
Задание 2

Amua, bila kuzindua kificho, nini kitatolewa kwenye koni:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num + 1);
}

test(1);
Задание 3

Amua, bila kuzindua kificho, nini kitatolewa kwenye koni:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num);
  }
  
  func(num + 1);
}

test(1);
Задание 4

Amua, bila kuzindua kificho, nini kitatolewa kwenye koni:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);
Задание 5

Amua, bila kuzindua kificho, nini kitatolewa kwenye koni:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2;
  }
  
  func(num);
  console.log(localNum);
}

test(1);
Задание 6

Amua, bila kuzindua kificho, nini kitatolewa kwenye koni:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);