⊗jsPmCxCL 435 of 505 menu

JavaScript හි සන්දර්භය අහිමි වීම

අපට ශ්‍රිතයක් තුළ ශ්‍රිතයක් තිබිය හැකිය යැයි සිතමු. අපි බාහිර ශ්‍රිතය parent ලෙසත්, අභ්‍යන්තර ශ්‍රිතය child ලෙසත් නම් කරමු:

function parent() { function child() { } }

පෙර පාඩම් වලින් ඔබ දන්නවා, යම් විචල්‍යයක් බාහිර ශ්‍රිතය තුළ අර්ථ දක්වන්නේ නම් - එය අභ්‍යන්තර ශ්‍රිතයට ලබා ගත හැකි බව:

function parent() { let str = 'abcde'; function child() { console.log(str); // 'abcde' ප්‍රතිදානය කරයි } child(); // අභ්‍යන්තර ශ්‍රිතය ක්‍රියාත්මක කරමු } parent(); // බාහිර ශ්‍රිතය ක්‍රියාත්මක කරමු

කෙසේ වෙතත්, සූක්ෂ්මතාවයක් තිබේ: අභ්‍යන්තර ශ්‍රිතයට බාහිර ශ්‍රිතයේ සියලු විචල්‍යයන්ට ප්‍රවේශය තිබුණත්, එයට this වෙත ප්‍රවේශය නොමැත. එනම්: යම් බාහිර ශ්‍රිතයක් DOM අංගයකට බැඳී ඇත්නම්, එහි this එම අංගය වෙත යොමු වනු ඇත, නමුත් අභ්‍යන්තර ශ්‍රිතයේ this - එසේ නොවේ!

එහෙනම් අභ්‍යන්තර ශ්‍රිතයේ this යොමු වන්නේ කුමක්ටද? පිළිතුර: එය undefined (කැක්කාමි ආකාරයෙන්) ට සමාන වේ, මන්ද ශ්‍රිතය කිසිවකට බැඳී නොමැති නිසා.

අපි ප්‍රායෝගිකව පරීක්ෂා කර බලමු. අපට ආදාන ක්ෂේත්‍රයක් ලබා දී ඇතැයි සිතමු:

<input id="elem" value="text">

මෙම ආදාන ක්ෂේත්‍රයට parent ශ්‍රිතය බඳිමු, එය ආදාන ක්ෂේත්‍රයෙන් අවධානය අහිමි වූ විට ක්‍රියාත්මක වේ:

"use strict"; let elem = document.querySelector('#elem'); elem.addEventListener('blur', parent); // අවධානය අහිමි වූ විට ක්‍රියාත්මක වේ: function parent() { // මෙහි කිසියම් කේතයක් ඇත function child() { // මෙහි කිසියම් කේතයක් ඇත } child(); // දාර ශ්‍රිතය ක්‍රියාත්මක කරමු }

this හි අන්තර්ගතය කොන්සෝලයට ප්‍රතිදානය කරමු ස්ථාන දෙකකදී: parent ශ්‍රිතය තුළ සහ child ශ්‍රිතය තුළ:

"use strict"; let elem = document.querySelector('#elem'); elem.addEventListener('blur', parent); function parent() { console.log(this); // අපගේ ආදාන ක්ෂේත්‍රය වෙත සබැඳිය ප්‍රතිදානය කරයි function child() { console.log(this); // undefined ප්‍රතිදානය කරයි } child(); }

මෙම කේතය ක්‍රියාත්මක කර, ආදාන ක්ෂේත්‍රයෙන් අවධානය අහිමි කර කොන්සෝලය දෙස බලන්න - ඔබට පෙනෙනු ඇති පළමු console.log කොන්සෝලයට අපගේ ආදාන ක්ෂේත්‍රය වෙත සබැඳිය ප්‍රතිදානය කරන අතර, දෙවනුව - සරලව undefined ප්‍රතිදානය කරන බව. මෙවැනි අවස්ථාවක, this අපේක්ෂා නොකළ අයුරින් අපට අවශ්‍ය දෙයට නොව වෙනත් දෙයකට යොමු වන විට, එය සන්දර්භය අහිමි වීම ලෙස හැඳින්වේ.

දැන් එක් ශ්‍රිතයක සහ දෙවන ශ්‍රිතයක අපි ආදාන ක්ෂේත්‍රයේ value ප්‍රතිදානය කරමු යැයි සිතමු. අදහස් දැක්වීම් වලින් සලකුණු කර ඇති කේත පේළිවල දී කුමක් ප්‍රතිදානය වේදැයි තීරණය කරන්න:

"use strict"; let elem = document.querySelector('#elem'); elem.addEventListener('blur', parent); function parent() { console.log(this.value); // කුමක් ප්‍රතිදානය කරයි? function child() { console.log(this.value); // කුමක් ප්‍රතිදානය කරයි? } child(); }
සිංහල
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
අපි වෙබ් අඩවිය ක්‍රියාත්මක කිරීම, විශ්ලේෂණය සහ පුද්ගලීකරණය සඳහා කුකී භාවිතා කරමු. දත්ත සැකසීම සිදුකරනු ලබන්නේ ගෝපනීයතා ප්‍රතිපත්තිය අනුව ය.
සියල්ල පිළිගන්න කොන්දේසි ප්‍රතික්ෂේප කරන්න