JavaScript တွင် this ၏ အကျိုးကျေးဇူး

ယခင်က ပြောခဲ့သည်များမှ this ၏ အထူးအကျိုးကျေးဇူးသည် အထင်အရှား မပေါ်လွင်သေးပါ။ ဖန်ရှင်ကောလ်ဘက်ခ်အတွင်း၌ ကျွန်ုပ်တို့၏ element ကို ရရှိနိုင်မည်ဖြစ်သည် - အဘယ်ကြောင့်ဆိုသော် elem ကိန်ရှင်သည် ကျွန်ုပ်တို့၏ func ဖန်ရှင် အတွက် global ဖြစ်နေမည် ဖြစ်သောကြောင့်ပင်။

javascriptlet elem = document.querySelector('#elem');
elem.addEventListener('click', func);

function func() {
  // ဤနေရာတွင် ကျွန်ုပ်တို့၏ element ပါသည့် elem ကိန်ရှင်ကို ရနိုင်သည်
}

ထို့ပြင်၊ စဉ်းစားရလွယ်ကူသည်မှာ this အတွင်းရှိအရာနှင့် elem ကိန်ရှင်အတွင်းရှိအရာသည် ကျွန်ုပ်တို့၏ ကိစ္စတွင် တူညီသည်ဟူသော အချက်ပင်။

javascriptlet elem = document.querySelector('#elem');
elem.addEventListener('click', func);

function func() {
  console.log(elem === this); // true ကို ပြသမည်
}

ထို့နောက် this ၏ အထူးအကျိုးကျေးဇူးကား အဘယ်နည်း။ အကျိုးကျေးဇူးသည် ကျွန်ုပ်တို့တွင် element အများအပြား ရှိပြီး တစ်ခုစီအား တူညီသော ဖန်ရှင်တစ်ခုတည်းဖြင့် ချိတ်ဆက်ထားသောအခါ ပေါ်လွင်လာပါသည်။

နမူနာဖြင့် ကြည့်ကြစို့။ ကျွန်ုပ်တို့တွင် 3 ခလုတ်များ ရှိသည်ဟု ဆိုကြပါစို့။

html<input id="button1" type="submit" value="text1">
<input id="button2" type="submit" value="text2">
<input id="button3" type="submit" value="text3">

၎င်းတို့အား ကိန်ရှင်များထဲသို့ ရယူကြမည်။

javascriptlet button1 = document.querySelector('#button1');
let button2 = document.querySelector('#button2');
let button3 = document.querySelector('#button3');

ထိုခလုတ်များအား တူညီသော ဖန်ရှင်တစ်ခုတည်းဖြင့် ချိတ်ဆက်ကြမည်။

javascriptbutton1.addEventListener('click', func);
button2.addEventListener('click', func);
button3.addEventListener('click', func);

ဖန်ရှင်အတွင်း၌ this.value ကို ထုတ်ပြကြမည်။

javascriptfunction func() {
  console.log(this.value);
}

ရလဒ်အနေဖြင့် ကျွန်ုပ်တို့တွင် ခလုတ်သုံးခု ရှိလာမည်။ ခလုတ်တစ်ခုစီကို နှိပ်ခြင်းသည် func ဖန်ရှင်အား ခေါ်ယူမည် ဖြစ်သည်။ ထိုသို့ဖြင့် ကလစ်တစ်ချက်စီတိုင်း၌ this သည် အဖြစ်အပျက်ဖြစ်ပွားသော ခလုတ်အား �ွှန်ပြသော လင့်ခ်တစ်ခုပါရှိမည် ဖြစ်သည်။

ဆိုလိုသည်မှာ နှိပ်ချက်တိုင်းသည် console တွင် နှိပ်ချက်ဖြစ်ပွားသော ခလုတ်၏ value ကို ထုတ်ပြမည် ဖြစ်သော်လည်း ထိုသို့ပြုလုပ်သည်မှာ တူညီသော func ဖန်ရှင်တစ်ခုတည်းသာ ဖြစ်သည်။ ဤသည်တို့မှာ this ကို အသုံးပြုခြင်း၏ အကျိုးကျေးဇူးပင်ဖြစ်သည်။

Задание 1

မည်သည့်စာသားများဖြင့်မဆို ဖြည့်စွက်ထားသော 5 စာပိုဒ်များ ရှိသည်။ မည်သည့်စာပိုဒ်ကိုမဆို ကလစ်နှိပ်လိုက်သောအခါ ၎င်း၏စာသားအဆုံး၌ အာမေဋိတ်အမှတ်အသားကို ရေးထည့်ပါ။

Задание 2

မည်သည့်ကိန်းဂဏန်းများဖြင့်မဆို ရေးသားထားသော 3 input များ ရှိသည်။ မည်သည့် input တွင်မဆို focus ပျောက်သွားသောအခါ ၎င်းအတွင်းရှိ ကိန်းကို နှစ်ထပ်ကိန်း တင်ပါ။