this keyword in JavaScript

V8 ဆိုတာ JavaScript engine တစ်ခု သူ့ကို C++ နဲ့ရေးထားတယ် အရေးကြီးဆုံးက သူ့ကို တခြား C++ programတွေမှာ embedded လုပ်လို့ရအောင်ရေးထားတာပါ chrome browser သည် C++ programတစ်ခု V8 ကို embedded လုပ်ထားတဲ့ browser programတစ်ခု အဲ့လို embedded လုပ်ထားလို့ဘဲ JavaScript codeတွေကို run နိုင်တာ အဲ့ဒါအပြင် ECMAScript standard ထဲမှာ nativeအနေနဲ့ပါမလာတဲ့ DOM လို API မျိုးတွေကို Javascript programထဲမှာထည့်ရေးလို့ရအောင် V8ကို C++ code တွေနဲ့လှမ်းခိုင်းထားတယ် ဆိုလိုတာက document.ဘာညာကွိကွ တွေသည် တကယ်တမ်း valid native javascript codeတွေမဟုတ်ဘူး ECMAScript ရဲ့ specificationထဲမှာအဲ့ကောင်တွေမပါဘူး အဲ့တော့ .js ဆိုတဲ့ fileတွေထဲမှာ document.ဘာညာကွိကွတွေပါလာရင် ဘယ် C++ code file နဲ့ချိတ်ဆက်ပြီးအလုပ်လုပ်ပါ ဆိုပြီး browser ကိုဖန်တီးတဲ့ developerတွေကရေးထားတာ (ဒီနေရာမြင်သာအောင် DOM နဲ့ဘဲဥပမာပေးတာပါ တခြား အရေးကြီးတဲ့ ဖြည့်စွက်featureတွေအများကြီးရှိပါသေးတယ်) အဲ့တော့ စဉ်းစားကြည့်လိုက်ရင် ECMAScript ရဲ့ specification တွေထဲမှာ ပြဌာန်းမထားတဲ့ feature တွေကို C++ code နဲ့ V8 လို js engines တွေသုံးပြီး ဖန်တီးလို့ရတယ်ဆိုတာ သဘောပေါက်သွားတယ်

Nodejs ဆိုတဲ့ နည်းပညာကလည်းထိုနည်း၎င်းဘဲ Nodejs ဆိုတာသည် တကယ်တမ်းတော့ C++ program တစ်ခုပါဘဲ V8 ကို embedded လုပ်ထားတဲ့ C++ programတစ်ခု အဲ့ဒါကြောင့် သူသည်လည်း Javascript codeတွေကို runလို့ရတယ် အဲဒီ့အပြင် ECMAScript specificationထဲမှာမပါတဲ့ File read write လို့ရတဲ့ feature မျိုးတွေ http request response လုပ်လို့ရတဲ့ feature Database နဲ့တိုက်ရိုက်ချိတ်ဆက်ပြီးလုပ်နိုင်တဲ့ feature (Server နည်းပညာတစ်ခုမှာရှိရမယ့် featureတွေ) ပြောရရင် native ECMAScript ထဲမှာမပါတဲ့ feature တွေကို nodejs developer က C++ code နဲ့ဖန်တီးပြီး V8 ကိုလှမ်းခိုင်းထားတယ် (အပေါ်က DOM လိုဘဲ) V8 က runတဲ့. js file ထဲမှာ ဘယ်လို identifier(variable) မျိုးပါလာရင် ဘယ် C++ code နဲ့တွဲပြီးအလုပ်လုပ်ပါ ပေါ့

အဲ့တော့ node လို အရမ်း powerful ဖြစ်တဲ့ runtime environment တစ်ခု သို့မဟုတ် node ထက်ကို ပိုမိုက်တဲ့ runtime environment. တစ်ခု ထွက်လာတိုင်း javascript ရဲ့ အသုံးဝင်မှုကလည်း ပိုများလာမှာပါဘဲ အခုတောင် nodeကို ဖန်တီးခဲ့တဲ့ သူကဘဲ Deno ဆိုတဲ့ projectတစ်ခုတောင်စနေပါပြီ Nodejs မှာ မှားခဲ့တဲ့ အမှားတွေကိုပြင်ဆင်ပြီး node ထက်ပို powerful ဖြစ်တဲ့ runtime environment. တစ်ခုကိုရေးနေတာပါ ဒါပေမယ့်သုံးတဲ့ language က typescript(superset of javascript) အဲ့တော့ Javascript ဆိုတာ လေ့ကိုလေ့လာသင့်တယ် နည်းပညာတစ်ခုဖြစ်ပါကြောင်း.. C/C++ ကိုလည်း လေ့လာသင့်ပါကြောင်း..အကြံပြုရင်းနဲ့ နိဂုံးချုပ်ပါရစေ

Follow me on Facebook