JavaScript හි බැඳුම්කරයක් නොමැති ශ්‍රිතයක සන්දර්භය

කාර්යයක් තුළ this යොදා ඇති නමුත් එය කිසිදු අංගයකට බැඳී නොමැති විට කුමක් සිදුවේදැයි බලමු, මෙවැනි අවස්ථාවක:

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

func();

මෙම අවස්ථාවේ ප්‍රතිඵලය රඳා පවතින්නේ කැපී පෙනෙන ප්‍රකාරය අප සතුව තිබේද නැද්ද යන්න මත ය. ප්‍රකාරය කැපී නොපෙනේ නම්, this හි ගබඩා වන්නේ window වෙත සබැඳියක් වේ:

javascriptfunction func() {
  console.log(this); // window වෙත සබැඳිය
}

func();

කෙසේ වෙතත්, ප්‍රකාරය කැපී පෙනෙන එකක් නම්, this හි ගබඩා වන්නේ undefined වේ:

javascript"use strict";

function func() {
  console.log(this); // undefined
}

func();

ඉහත කියැවුණු දෑ වලින් එය පෙනෙන්නට ඇත්තේ කැපී පෙනෙන ප්‍රකාරයේ දී this සෑම විටම undefined වනු ඇති බවයි. එසේ නොවේ! this ශ්‍රිතයකින් තොරව පමණක් ප්‍රතිදානය කරන්නේ නම්, එහි ඇත්තේ window වෙත සබැඳියක් වන අතර එය ප්‍රකාරයෙන් ස්වායත්ත වේ:

javascript"use strict";
console.log(this); // this හි window වෙත සබැඳියක් ඇත

නිගමන

ඕනෑම ශ්‍රිතයක තුළ this ලිවිය හැකිය, මෙය JavaScript හි යම් දෝෂයකට හේතු නොවේ. නමුත් මෙම this හි නියමයෙන්ම ඇත්තේ කුමක් ද යන්න ශ්‍රිතය ක්‍රියාත්මක කිරීමේ මොහොත දක්වා නිර්වචනය නොවේ. එසේම, ශ්‍රිතය විවිධ අවස්ථාවලදී ක්‍රියාත්මක කිරීමේදී this විවිධ අගයන් ගත හැකිය. සියල්ල රඳා පවතින්නේ ශ්‍රිතය ක්‍රියාත්මක කරන ලද සන්දර්භය මත ය.