Ushbu ochiq manbali loyihani butun dunyo bo'ylab odamlar uchun taqdim etmoqchimiz.

Ushbu qo'llanmaning mazmuni sizning tilingizga tarjima qilishga yordam bering!

darsga qaytish

Qaysi o'zgaruvchilar mavjud?

Quyidagi makeWorker funktsiyasi boshqa funktsiya yaratadi va uni qaytaradi. O’sha yangi funktsiya boshqa joydan chaqirilishi mumkin.

U o’zining yaratilgan joyidagi tashqi o’zgaruvchilarga, yoki chaqirilgan joyidagiga, yoki ikkala joyidagiga ham kirish huquqiga ega bo’ladimi?

function makeWorker() {
  let name = "Pete";

  return function () {
    alert(name);
  };
}

let name = "John";

// funktsiya yaratish
let work = makeWorker();

// uni chaqirish
work(); // nima ko'rsatadi?

Qaysi qiymatni ko’rsatadi? “Pete” yoki “John”?

Javob: Pit.

Quyidagi koddagi “work()” funksiyasi tashqi leksik muhit havolasi orqali kelib chiqqan joydan “nom” oladi:

Demak, natija bu erda "Pit".

Ammo agar makeWorker() da let name bo’lmasa, qidiruv tashqariga chiqib, yuqoridagi zanjirdan ko’rib turganimizdek global o’zgaruvchini oladi. Bunday holda, natija “Jon” bo’ladi.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.