JavaScript භාෂාව වෙනත් බොහෝ පrogramming භාෂා වල OOP ක්රමවේදය වෙනස් වේ. පාරම්පරිකව පන්තිය (class) භාවිතා කිරීම වෙනුවට, JavaScript ප්රොටෝටයිප් (prototype) මත පදනම් වෙයි. ES6 සමඟ පන්තියන් ඇතුළත් වූවත්, ඒවා ඇත්තේ ප්රොටෝටයිප් වලට සරල මුහුණතක් පමණයි.
ප්රොටෝටයිප් කියන්නේ බෙදාගත හැකි වස්තුවක්. එකම ක්රමයක් (method) හෝ ගුණාංගයක් (property) බොහෝ වස්තු අතර බෙදා ගැනීමට මෙය භාවිතා වේ. එවිට සෑම වස්තුවකටම ඒම ක්රමයේ පිටපතක් සාදන අවශ්යතාවක් නොමැති නිසා මතක (memory) ඉතිරි වේ.
prototype සහ __proto__ අතර වෙනස පළමු වරට ගැළපෙන්නට කට්ටලයක් විය හැක. prototype යනු ෆන්ක්ෂන් (function) එකකට අයත් අතර, __proto__ යනු ඒ ෆන්ක්ෂන් මගින් සෑදුනු වස්තුවකට අයත් වේ. වස්තුවක් ගුණාංගයක් සොයන විට JavaScript එය __proto__ හරහා ප්රොටෝටයිප් වෙත යයි.
ප්රොටෝටයිප් ශෘංග (prototype chain) කියන්නේ වස්තුවකට අවශ්ය ගුණාංගයක් නැති නම්, එය ඒ වස්තුවේ ප්රොටෝටයිප් වෙත, එතැනත් නැත්නම් ඊළඟ ප්රොටෝටයිප් වෙත යාමයි. අවසානයේ null දක්වා පවත්නා මෙම සෙවීම JavaScript හි වස්තු උරුම කිරීමේ මූලික ක්රියාවලියයි.
Object.create() ක්රමය භාවිතා කරමින්, ඔබට වෙනත් වස්තුවක ප්රොටෝටයිප් ලෙස නව වස්තුවක් සකස් කළ හැක. මෙය inheritance (උරුම) ක්රියාවලිය සරල කරයි.
ES6 පසු, class යන සින්ටැක්ස් (syntactic sugar) හරහා ප්රොටෝටයිප් පදනමට වඩා පිරිසිදු ලෙස කේතයක් ලියන්න පුළුවන්. ඇත්තේ class එකක් ප්රොටෝටයිප් මත ඉදිරිපත් කරන සුළු මුහුණතක් පමණයි.
inheritance මඟින් එක් පන්තියක (class) ගුණාංග සහ ක්රමයන් වෙනත් පන්තියකට උරුම කරගත හැක. මෙය කේතය නැවත ලිවීමේ අවශ්යතාවය අඩු කරයි.
polymorphism යනු ඒකාකාරී නාමයක් (method) භාවිතා කරමින්, වස්තුව අනුව වෙනස් ප්රතිචාර ලබා දීමයි. උදා: Animal පන්තියේ speak() ක්රමය Dog සහ Cat පන්තියන්හි වෙන වෙනම අර්ථ දක්වයි.
abstraction (අභ්යන්තර සැඟවීම) මගින් අවශ්ය ක්රියාකාරකම පමණක් පෙන්වා, ඉන්පසු අභ්යන්තර විස්තර සැඟවීමෙන් කේතය පවත්වා ගැනීමට හැකියාව ලැබේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
JavaScript ප්රොටෝටයිප් සහ OOP මූලධර්මයන් ඉගෙනීම, ශ්රී ලාංකීය ඩිවෙලොපර්, සිසුන්, ව්යාපාරිකයින්ට පහත වාසි ලබා දේ:
- වෙබ් යෙදුම් සංවර්ධනයේ කාර්යක්ෂමතාව වැඩිවීම.
- කේතය නැවත භාවිතා කර ගැනීමෙන් ව්යාපාරික වියදම් අඩු කිරීම.
- ඉගෙනුම් වේගය ඉහළ යාම – class සින්ටැක්ස් මඟින් නවකයන්ට පහසු අධ්යයනය.
- ප්රොටෝටයිප්-අධාරිත ආකෘති නිසා මතක භාවිතය හොඳින් කළ හැකිවීම.
- ලෝක තත්ත්වයේ JavaScript ප්රවණතා සමඟ සමානව ඉදිරියට යාම.
ඉදිරියේදී AI, API, cloud සේවාවන් සමඟ JavaScript භාවිතය ඉතා වැදගත් වන බැවින්, මේ මූලික කරුණු අවබෝධ කරගැනීම ඔබේ වෘත්තීය වර්ධනයට හොඳ ආරම්භයක් වේ.
ඔබත් JavaScript ප්රොටෝටයිප් සහ OOP ගැන දැනුම ගොඩනඟා, තාක්ෂණික වාණිජ අවස්ථා සොයා බලන්න.