JavaScript ၌ OOP နည်းလမ်း၏ ကုဒ်တွင် ဆက်စပ်မှု ဆုံးရှုံးခြင်း

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

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  getName() {
    return this.#name;
  }
}

ဤအတန်း၏ အိုဘဂျက်တ်တစ်ခုကို ဖန်တီးကြပါစို့။

javascriptlet user = new User('john');

နည်းလမ်း၏ ကုဒ်ကို variable တစ်ခုအတွင်း ရေးကြည့်ကြပါစို့။

javascriptlet func = user.getName;

နည်းလမ်းကို variable အတွင်းသို့ ရေးသားသောအချိန်တွင် ဆက်စပ်မှု ဆုံးရှုံးသွားပါသည်။ အခုဆိုလျှင် this နည်းလမ်း၏ ကုဒ်အတွင်းတွင် အတန်း၏အိုဘဂျက်ကို ညွှန်ပြမည်မဟုတ်ပါ။ စစ်ဆေးကြည့်ကြပါစို့၊ ကျွန်ုပ်တို့၏ function ကို ခေါ်ကြည့်ပါမည်။

javascriptconsole.log(func()); // အမှား

ပြဿနာကိုဖြေရှင်းရန် function နှင့် ဆက်စပ်မှုကို ချိတ်ဆက်ပေးနိုင်သည်၊ ဥပမာ၊ bind မှတစ်ဆင့်။

javascriptfunc = func.bind(user);
console.log(func()); // အလုပ်လုပ်သည်